Debian

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

  • May 16, 2014

在(Debian)Linux上,我想:

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

案例是:

我有一個守護程序服務,我想優雅地關閉它。它可以通過發送 TCP 命令來停止。如果 TCP 命令沒有返回,請使用 Posix HUP 終止程序。

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

我也沒有給 debian 的人頒發獎章start-stop-daemon

我想,你想對一些守護程序做一個解決方法。GNU CoreUtils 包中有一個名為的工具timeout,您可以幫助執行此操作:

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

我部分地從這個問題中獲得了這些資訊。

引用自:https://serverfault.com/questions/596511