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

我如何为 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

相关内容