Linux

如何為 start-stop-daemon 生成一個命令,如果它在超時期間沒有終止,它將終止該程序?

  • December 20, 2014

我需要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

引用自:https://serverfault.com/questions/448699