LINUX.ORG.RU

удаление процесса


0

0

AMD 64x2 ядро 2.6.24.2

проблема: есть процесс(mplayer). запущенный не от рута. при посыле ему SIGKILL и SIGTERM не реагирует. в списке процессов как zombie не значится. ресурсы, занятые им не освобождены.

есть ли возможность в линуксе удалить процесс не через посыл ему SIGKILL?

★★★★★

Я не совсем понял вопрос, особенно с учетом "при посыле ему SIGKILL и SIGTERM не реагирует". Если процесс не реагирует на SIGKILL и не zombie, то это как то странно.

А в целом, процесс может обрабатывать (и в том числе игнорировать) все сигналы кроме SIGKILL и SIGSTOP. Кроме SIGTERM для завершения интерактивного процесса часто используют SIGHUP или SIGINT, но если процесс (программа) не захочет завершаться, то только SIGKILL...

mky ★★★★★
()
Ответ на: комментарий от mky

Вот не реагирует ни на что

В том числе и на SIGKILL

в top как zombie не значится

Есть ли возможность принудительно вырезать его из таблицы запущенных процессов?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Теоретически в rmmod есть такой ключ, но практически он скорее обрушит систему, чем выгрузит модуль.

INFOMAN ★★★★★
()
Ответ на: комментарий от cvs-255

То есть у него состояение "D" (uninterruptible sleep), фактически означающие, что процесс выполняется syscall. И вроде как нету средства "убить" такой процесс. Правда, как только такой syscall закончится, процесс сразу получит отправленные ему сигналы (в том числе и SIGKILL) и завершится. Если syscall выполняется неопределнно долго, то это ошибка в коде ядра, в вашем случае, скорее всего, в драйвере cdfs или cd-rom'а...

Не смотря на модули, ядро Линукса по сути монолитное, поэтому выгрузка используемого модуля или освобождение ресурсов процесса, выполняющего syscall, крайне рискованная операция для всего ядра.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.