如何为 start-stop-daemon 生成一个命令,如果它在超时期间没有终止,它将终止该进程?

Mau*_*res 8 linux daemon redis 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
Run Code Online (Sandbox Code Playgroud)

关于我如何能够做到这一点的任何提示?

小智 11

有两种方式:

第一个只是指定一个数值--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
Run Code Online (Sandbox Code Playgroud)

二是指定一个完整的时间表--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
Run Code Online (Sandbox Code Playgroud)