(initscripts) Выполнить команду, если команда не завершится в течение 10 секунд, запустить другую

(initscripts) Выполнить команду, если команда не завершится в течение 10 секунд, запустить другую

В (Debian) Linux я хочу:

  • Выполнить команду.
  • Если команда не будет выполнена в течение 10 секунд, завершите ее и попробуйте выполнить другую команду.

Вариант использования:

У меня есть служба демона, которую я хотел бы завершить корректно. Ее можно остановить, отправив команду TCP. Если команда TCP не возвращается, завершите процесс с помощью Posix HUP.

start-stop-daemon, похоже, этого не делает, есть у кого-нибудь подсказки?

решение1

Я также не дал медаль за реализацию Debian людьми start-stop-daemon.

Я думаю, вы хотите сделать обходной путь для какого-то демона. В пакете GNU CoreUtils есть инструмент timeout, который вы могли бы помочь сделать это:

timeout --kill-after=15 --signal=9 this_is_my_command || this_will_run_on_fail

Он запустится this_is_my_command, и если истечет время ожидания, он завершит работу сигналом 9 (жесткое завершение) и выполнит команду this_will_run_on_fail.

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

Связанный контент