Назад | Перейти на главную страницу

Как я могу сгенерировать команду для start-stop-daemon, которая убьет процесс, если он не истечет в течение периода ожидания?

Мне нужно запустить start-stop-daemon для экземпляра Redis, и я хочу, чтобы он отправил SIGTERM и если экземпляр Redis не закрывается, я бы хотел, чтобы он принудительно завершил работу.

В start-stop-daemon конфигурация говорит, что --retry для этого можно использовать опцию, но я не мог придумать, как это сделать, вот моя текущая команда:

/sbin/start-stop-daemon --stop --retry forever/TERM --quiet --oknodo --pidfile /var/run/redis/redis.pid --exec /usr/bin/redis-server

Какие-нибудь намеки на то, как я смогу это сделать?

Есть два способа:

Первый - просто указать числовой --retry стоимость. Тогда он будет использовать /signal/timeout/KILL/timeout график. Т.е. отправить сигнал завершения (указанный с --signal option), затем подождите указанное количество секунд и затем отправьте сигнал KILL, который не может быть проигнорирован процессом, и поэтому он будет принудительно завершен. Команда будет выглядеть так:

/sbin/start-stop-daemon --stop --signal TERM --retry 5 --quiet --oknodo --pidfile /var/run/redis/redis.pid --exec /usr/bin/redis-server

Второй - указать полный график к --retry option. Это будет выглядеть так:

/sbin/start-stop-daemon --stop --retry TERM/5/KILL/10 --quiet --oknodo --pidfile /var/run/redis/redis.pid --exec /usr/bin/redis-server