%20%E5%9F%B7%E8%A1%8C%E4%B8%80%E5%80%8B%E6%8C%87%E4%BB%A4%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%8C%87%E4%BB%A4%E5%9C%A810%E7%A7%92%E5%85%A7%E6%B2%92%E6%9C%89%E5%AE%8C%E6%88%90%EF%BC%8C%E5%89%87%E5%9F%B7%E8%A1%8C%E5%8F%A6%E4%B8%80%E5%80%8B%E6%8C%87%E4%BB%A4.png)
在 (Debian) Linux 上我想:
- 執行命令。
- 如果該命令未在 10 秒內完成,請終止該命令並嘗試另一個命令。
用例是:
我有一個守護進程服務,我想優雅地關閉它。可以透過發送 TCP 命令來停止它。如果 TCP 指令未傳回,請使用 Posix HUP 終止該進程。
start-stop-daemon 似乎沒有這樣做,有人有任何提示嗎?
答案1
我也沒有為 Debian 實施的人們頒發獎牌start-stop-daemon
。
我認為,您想對某些守護程序做出解決方法。timeout
GNU CoreUtils 套件中有一個名為的工具,可協助您執行此操作:
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
。
我部分資訊來自這問題。