(initscripts) 執行一個指令,如果指令在10秒內沒有完成,則執行另一個指令

(initscripts) 執行一個指令,如果指令在10秒內沒有完成,則執行另一個指令

在 (Debian) Linux 上我想:

  • 執行命令。
  • 如果該命令未在 10 秒內完成,請終止該命令並嘗試另一個命令。

用例是:

我有一個守護進程服務,我想優雅地關閉它。可以透過發送 TCP 命令來停止它。如果 TCP 指令未傳回,請使用 Posix HUP 終止該進程。

start-stop-daemon 似乎沒有這樣做,有人有任何提示嗎?

答案1

我也沒有為 Debian 實施的人們頒發獎牌start-stop-daemon

我認為,您想對某些守護程序做出解決方法。timeoutGNU 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

我部分資訊來自問題。

相關內容