Linux
如何為 start-stop-daemon 生成一個命令,如果它在超時期間沒有終止,它將終止該程序?
我需要
start-stop-daemon
為 redis 實例執行 a 並且我希望它發送 aSIGTERM
並且如果 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
選項指定),然後等待指定的秒數,然後發送一個程序無法忽略的 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