(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,

Я получаю эту информацию частично из этого вопроса.

Другие вопросы по тегам