2013-04-23 50 views
0

我在Solaris SunOS系統上有幾個Perl腳本,它們基本上連接到網絡上的其他節點並獲取/處理命令日誌。手動運行時99%的時間運行正確,但有時會卡住。在這種情況下,我只是打斷它並再次運行。如何檢測cronned腳本是否卡住

現在,我打算對它們進行處理,我想知道是否有辦法檢測腳本是否在執行過程中卡住了(無論出於何種原因),並且最好儘快退出,以釋放它可能佔用的任何系統資源。

任何幫助非常感謝。

+1

修復bug代碼? – jordanm 2013-04-23 04:27:53

+0

腳本的掛起是由於在我無法控制的遠程端的間歇性網絡問題。 – 2013-04-23 04:33:31

+1

不確定例如'ps'輸出看起來像在Solaris上,但是如果進程在I/O中等待很長時間,那麼這看起來像是一個有用的問題指示器。但是,同意修復代碼以防止阻塞I/O狀態會更好。 – tripleee 2013-04-23 04:40:01

回答

2

TMTOWTDI,而是一種可能性:

  1. 在腳本的開始,寫的進程id到一個臨時文件。
  2. 在腳本的末尾,刪除臨時文件。
  3. 在另一個腳本中,查看是否有任何超過幾分鐘/小時的臨時文件。
+0

非常感謝,這是一個正確的方向:) – 2013-04-23 05:18:49