Signals
如何從 bash 腳本中擷取掛起的簡歷
我有一個 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)以獲取最後的睡眠/喚醒時間由核心記錄。
這將比依賴信號做更多的工作。您還可以讓助手自行執行並向腳本發送您想要的任何信號。
六個一個,半打另一個。