(启动脚本)执行一个命令,如果该命令在 10 秒内未完成,则运行另一个命令

(启动脚本)执行一个命令,如果该命令在 10 秒内未完成,则运行另一个命令

在 (Debian) Linux 上我想要:

  • 执行命令。
  • 如果命令在 10 秒内未完成,则终止它并尝试另一个命令。

用例是:

我有一个守护进程服务,我想正常关闭它。可以通过发送 TCP 命令来停止它。如果 TCP 命令没有返回,请使用 Posix HUP 终止该进程。

start-stop-daemon 似乎没有执行此操作,有人有什么提示吗?

答案1

我还没有为 debian 实现的人颁发奖章start-stop-daemon

我认为,您想针对某些守护进程制定解决方法。GNU timeoutCoreUtils 包中有一个名为的工具,可以帮助您完成此操作:

timeout --kill-after=15 --signal=9 this_is_my_command || this_will_run_on_fail

它将运行this_is_my_command,如果超时,它将使用信号 9(硬终止)终止它,然后运行命令this_will_run_on_fail

我部分获得此信息来自问题。

相关内容