Назад | Перейти на главную страницу

Как проверить, продолжает ли процесс выводить данные или завис

Я использую несколько сценариев 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