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