Я смонтировал папку общего доступа SMB в / mnt / smb /, и я могу получить доступ к файлам. Когда я размонтирую эту общую папку с помощью команды:
umount /mnt/smb/
естественно, я не могу перечислить содержимое общей папки с помощью команды:
ls /mnt/smb/
Но проблема в том, что когда я запускаю команду ls из файла PHP на том же компьютере, содержимое общей папки SMB может быть указано! Содержимое файла PHP:
<?php
$command = 'ls /mnt/smb/';
$result = shell_exec($command);
echo $result;
?>
В чем моя ошибка Есть ли какой-либо другой комманд, необходимый для полного размонтирования общего ресурса SMB? Я также использовал команду ниже, но не повезло:
fusermount -u /mnt/smb/
Когда команда mount выполняется более одного раза, в фоновом режиме открывается несколько сеансов. Выполнение команды монтирования u (n) завершает только один из сеансов, в то время как другие сеансы активны в фоновом режиме. Активные сеансы можно увидеть, выполнив эту команду:
mount | grep /mnt/smb
Выполнение команды u (n) mount снова прекращает активные сеансы один за другим и решает проблему. Я использовал этот скрипт для запуска команды монтирования u (n) столько раз, сколько необходимо:
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
Других решений пока нет …