我在/mnt/smb/下安装了 SMB 共享文件夹,我可以访问这些文件。当我使用命令卸载此共享文件夹时:
umount /mnt/smb/
当然,我无法使用命令列出共享文件夹内容:
ls /mnt/smb/
但问题是,当我从同一台计算机上的 PHP 文件运行 ls 命令时,可以列出共享 SMB 文件夹的内容! PHP文件的内容是:
<?php
$command = 'ls /mnt/smb/';
$result = shell_exec($command);
echo $result;
?>
我的错误是什么?是否需要任何其他命令才能完全卸载 SMB 共享?我也使用了下面的命令,但没有运气:
fusermount -u /mnt/smb/
最佳答案
当 mount 命令运行多次时,会在后台打开多个 session 。运行 u(n)mount 命令,仅终止其中一个 session ,而其他 session 在后台处于事件状态。可以通过运行以下命令查看事件 session :
mount | grep /mnt/smb
再次运行 u(n)mount 命令会一一终止事件 session 并解决问题。我使用此脚本根据需要多次运行 u(n)mount 命令:
if [ "$(sudo mount | grep /mnt/smb)" != "" ]; then
sudo umount -l /mnt/smb/;
smbContents=$(sudo mount | grep /mnt/smb);
fi
while [ "$smbContents" != "" ]; do
sudo umount -l /mnt/smb/;
smbContents=$(sudo mount | grep /mnt/smb);
done
关于php - 卸载 SMB 共享文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48814487/