Signals

如何從 bash 腳本中擷取掛起的簡歷

  • July 7, 2011

我有一個 bash 腳本(在 osx 上)連續執行,它目前像這樣擷取並處理終止

trap onshutdown TERM

我怎樣才能讓陷阱也像處理暫停/恢復一樣

trap onsuspend ?

trap onresume ?

您正在尋找信號 SIGTSTP 和 SIGCONT。嘗試這個:

trap onsuspend TSTP
trap onresume  CONT

由於該程序只是被暫停並且不能可靠地告知,因此我將設置一個命名管道並生成一個哨兵腳本。

它會簡單地每 5 或 15 分鐘循環一次,將目前時間戳寫入命名管道,然後休眠。

然後,您可以從該管道中讀取並在讀取之間進行數學運算 - 如果時間跳躍超過一到兩次 ping,那麼您已經睡著了。

根據您需要時間的準確程度,您可以跟踪 /private/var/log/system.log 文件(可能還有 /private/var/log/system.0.log.gz)以獲取最後的睡眠/喚醒時間由核心記錄。

這將比依賴信號做更多的工作。您還可以讓助手自行執行並向腳本發送您想要的任何信號。

六個一個,半打另一個。

引用自:https://unix.stackexchange.com/questions/11498