Что предотвращает перезагрузку?

[117014]Эта проблема перезапускается в кернел. У меня такая же проблема. Для перезапуска этой проблемы я обновил ядро. Для этого я переопределил ссылку [117596] [12187]
2
23.03.2015, 20:30
1 ответ

Я когда-то бежал в эту проблему, когда моя система работала бесперебойные процессы. Мы пошли в очень неприятную ситуацию, где наши процессы Apache были, казалось, ждут чего-то с диска, и не может быть убит .

Насколько я знаю, при отключении, Linux посылает SIGTERM SIGTERM SIGTERM SIGKILL SIGKILL через несколько секунд для тех, кто осмелился не подчиняться. Однако сам ядро ​​защитит эти процессы, если они находятся в бесперебойном состоянии: это помогает предотвратить потери данных, когда вызов висящей системы включает в себя операцию ввода-вывода. Прямо сейчас я не могу думать о том, что что-то другое, способное к отбросить * A SIGKILL , поэтому другие элементы ответа могут быть приведены здесь.

* Это довольно упрощенный (если не ошибочный) способ увидеть его, и он не принимает сигнал асинхроничности во внимание. Смотрите комментарий Gilles для более подробной информации о этой точке.

Тем не менее, когда дело доходит до бесперебойных процессов ...

Как убить бесперебойного процесса без перезагрузки: как-то сделать системный вызов завершителем. Часто наиболее эффективным способом сделать это без удаления выключателя питания - это тянуть шнур питания. Вы также можете стать хакером ядра и сделать драйвер использовать Task_killable, как объяснено в статье LWN .

Вы можете получить список всех запущенных бесперебойных процессов с ...

$ ps -eo 'state,pid,args' | awk '$1 == "D" {print;}'
$ ps -eo 'state,pid,args' | grep -E '^D'
$ ps -eo 'state,pid,args' | egrep '^D'
...
1
27.01.2020, 22:21

Теги

Похожие вопросы