4

Справочная страница, кажется, указывает нет. На Fedora есть /etc/rc.d/init.d/halt. В нем есть жестко заданная пауза, но должен быть лучший способ, чем изменить этот сценарий. Любая помощь будет оценена.

2 ответа2

4

Страница руководства в моей системе имеет:

-t sec Tell  init(8)  to  wait sec seconds between sending
processes the warning and  the kill signal, before changing 
to another runlevel.

(Это, вероятно, более подходящий вопрос для serverfault)

0

Чтобы иметь конкретную задержку между SIGTERM и SIGKILL, вы можете указать три команды в скрипте как root

kill -SIGTERM -1
sleep 20
kill -SIGKILL -1

в

  • отправить SIGTERM всем процессам (кроме 1),
  • подождите 20 секунд, затем
  • отправить сигнал -9 чтобы немедленно убить оставшиеся процессы,

но это убило бы ваши собственные процессы, ваш интерпретатор shell ...
Разработка скрипта (например, в Perl) для перечисления всех процессов, а затем для уничтожения только тех процессов, которые не наносят вреда вашему собственному скрипту, и запуска его в nohup чтобы присоединить его к процессу «отец всех 1 , сделают эту работу.

Другое решение состоит в том, чтобы загрузить источник shutdown (или halt) и посмотреть, как он работает - добавление фиксированной или дополнительной задержки между отправкой двух сигналов не должно быть слишком сложным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .