Справочная страница, кажется, указывает нет. На Fedora есть /etc/rc.d/init.d/halt. В нем есть жестко заданная пауза, но должен быть лучший способ, чем изменить этот сценарий. Любая помощь будет оценена.
2 ответа
Страница руководства в моей системе имеет:
-t sec Tell init(8) to wait sec seconds between sending
processes the warning and the kill signal, before changing
to another runlevel.
(Это, вероятно, более подходящий вопрос для serverfault)
Чтобы иметь конкретную задержку между SIGTERM и SIGKILL, вы можете указать три команды в скрипте как root
kill -SIGTERM -1
sleep 20
kill -SIGKILL -1
в
- отправить SIGTERM всем процессам (кроме 1),
- подождите 20 секунд, затем
- отправить сигнал
-9
чтобы немедленно убить оставшиеся процессы,
но это убило бы ваши собственные процессы, ваш интерпретатор shell
...
Разработка скрипта (например, в Perl) для перечисления всех процессов, а затем для уничтожения только тех процессов, которые не наносят вреда вашему собственному скрипту, и запуска его в nohup
чтобы присоединить его к процессу «отец всех 1
, сделают эту работу.
Другое решение состоит в том, чтобы загрузить источник shutdown
(или halt
) и посмотреть, как он работает - добавление фиксированной или дополнительной задержки между отправкой двух сигналов не должно быть слишком сложным.