Назад | Перейти на главную страницу

Неубиваемые пользовательские процессы в Linux?

Я использую 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 не работает?