Я использую sshfs (fusermount) для подключения удаленных точек монтирования.
Когда я забываю их размонтировать с помощью ...
fusermount -u /REMOTE
... зависают все процессы, использовавшие точки монтирования.
Я пытаюсь убить их убить всех, убийство, killproc, ничего не работает!
Как такое возможно?
Невозможность убить процесс пользовательского пространства обычно является проблемой Microsoft Windows. характерная черта ;)
rd@acid:/home/me > pgrep mc
11749
11827
12068
rd@acid:/home/me > su
Password:
<netgod>@acid:/home/me # kill 12068
<netgod>@acid:/home/me # killall mc
<netgod>@acid:/home/me # pgrep mc
11749
11827
12068
Файловая система действительно находится в пользовательском режиме, но системный вызов от клиентского процесса, который обращается к файловой системе через ядро, поэтому на самом деле они зависли в земле ядра.
Вы пробовали принудительное отключение файловой системы (umount -f /REMOTE
)?
Я думаю, что вы можете видеть те процессы, которые зависли, выполняя какой-то тип ввода-вывода, который теперь не может быть завершен. Если вы посмотрите на поле «состояние», заданное командой ps, я почти уверен, что вы увидите эти процессы в состоянии «D». Если процесс находится в этом состоянии, его нельзя убить обычными средствами. Процессы будут зависать до перезагрузки.
kill -9 PID не работает?