(initscripts) Выполнить команду, если команда не завершится в течение 10 секунд, запустить другую
На (Debian) Linux я хочу:
- Выполнить команду.
- Если команда не завершится в течение 10 секунд, убейте ее и попробуйте другую команду.
Вариант использования:
У меня есть служба демонов, которую я хотел бы закрыть изящно. Его можно остановить, отправив команду TCP. Если команда TCP не возвращается, завершите процесс с помощью Posix HUP.
start-stop-daemon, похоже, не делает этого, у кого-нибудь есть намеки?
1 ответ
Решение
Я также не дал медаль за реализованные люди Debian start-stop-daemon
,
Я думаю, вы хотите обойти некоторых демонов. Есть инструмент с именем timeout
в пакете GNU CoreUtils, который вы могли бы помочь сделать это:
timeout --kill-after=15 --signal=9 this_is_my_command || this_will_run_on_fail
Будет работать this_is_my_command
и, если время ожидания истекло, он убьет это с сигналом 9 (hard kill) и выполнит команду this_will_run_on_fail
,
Я получаю эту информацию частично из этого вопроса.