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

Я использую несколько скриптов casperjs (которые я не совсем понимаю) с известной проблемой, заключающейся в зависании процесса после определенного предупреждающего сообщения. В противном случае он выводит сообщение журнала каждые несколько секунд.

Мне нужно перезапустить процесс, когда он зависает.

Могу ли я создать сценарий, который проверяет, увеличивается ли размер файла журнала на каждом временном интервале? Или я могу перехватить вывод процесса консоли и проверить, совпадает ли последнее сообщение с конкретным предупреждением?

Любая помощь будет принята с благодарностью!

0
задан 2 August 2016 в 18:37
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
0
ответ дан 24 November 2019 в 06:03

Теги

Похожие вопросы