php - 卸载 SMB 共享文件夹

标签 php smb unmount

我在/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/

相关文章:

ubuntu - 无法卸载 Nas 文件夹,目标忙

php - 无法在 PHP 中制作不区分大小写的正则表达式

php - Wordpress 远程导致 "This webpage has a redirect loop"错误

PHP: Datetime::Diff 结果比较

c - 如何获取目录 smb libcurl 中的文件列表?

java - 如何将 SmbFile 转换为 File?

java - 在多线程中使用 jCIFS

javascript - 更改页面后卸载事件

linux - 如何在 Linux 上附加挂载

php - 如果为空变量