如何检查进程是否仍在输出或挂起

如何检查进程是否仍在输出或挂起

我正在使用一些 casperjs 脚本(我不太理解),但有一个已知问题,即进程在特定警告消息后挂起。否则它会每隔几秒钟输出一条日志消息。

当它挂起时我需要重新启动该进程。

那么,我可以编写一个脚本来检查日志文件是否在每个时间间隔内都在变大吗?或者我可以截取进程的控制台输出并检查最后一条消息是否与特定警告消息相同吗?

任何帮助都将不胜感激,谢谢!

答案1

#!/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

相关内容