%20%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%83%2C%20%D0%B5%D1%81%D0%BB%D0%B8%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B0%20%D0%BD%D0%B5%20%D0%B7%D0%B0%D0%B2%D0%B5%D1%80%D1%88%D0%B8%D1%82%D1%81%D1%8F%20%D0%B2%20%D1%82%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%2010%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%2C%20%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C%20%D0%B4%D1%80%D1%83%D0%B3%D1%83%D1%8E.png)
В (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
.
Я получаю эту информацию частично изэтотвопрос.