Linux

如何檢查程序是否仍在輸出或掛起

  • August 2, 2016

我正在使用一些 casperjs 腳本(我不太了解),但存在一個已知問題,即程序在特定警告消息後掛起。否則它每隔幾秒鐘就會輸出一條日誌消息。

我需要在掛起時重新啟動該過程。

那麼我可以製作一個腳本來檢查日誌文件是否在每個時間間隔都變大了?或者我可以截取程序的控制台輸出並檢查最後一條消息是否與特定的警告消息相同?

任何幫助將不勝感激,謝謝!

#!/bin/sh
LOGFILE="/path/to/logfile/"
CURRENT_SIZE=`stat --format "%s" $LOGFILE`
while true; do
   LAST_SIZE=$CURRENT_SIZE
   sleep 10
   CURRENT_SIZE=`stat --format "%s" $LOGFILE`
   if [[ $CURRENT_SIZE -eq $LAST_SIZE ]]; then
           echo "Restarting process"
           #do whatever you need to restart process...
           sleep 5
           CURRENT_SIZE=`stat --format "%s" $LOGFILE`
   fi
done

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