Как я могу сгенерировать команду для 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

Любые намеки на то, как я смогу сделать это?

1 ответ

Решение

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

Во-первых, просто указать числовой --retry значение. Тогда это будет использовать /signal/timeout/KILL/timeout график. Т.е. отправить завершающий сигнал (указывается с --signal параметр), затем подождите указанное количество секунд и затем отправьте сигнал 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
Другие вопросы по тегам