@DimiDr0lik

Как запустить скрипт если процесс завершился?

имеется небольшой скрипт по снятию скриншотов с камеры, но он иногда вылетает, как сделать проверку запущен ли он и если нет то запустить? нужно на bashe
  • Вопрос задан
  • 367 просмотров
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Надежный linux-way способ, создавать флаг в виде файла, в котором лежит PID процесса. И затем отслеживаьт его статус. Можно просто через крон поставить на запуск каждые xx минут.

FLAGFILE=/tmp/myprocess.flg
if [ -e $FLAGFILE ]; then
read <$FLAGFILE PID
ps $PID >> /dev/null
if [ $? –eq 0 ]; then
echo "Process is already running. Exiting."
exit 1
else
echo "Previous shutdown was incorrect. Continue."
rm $FLAGFILE
fi
fi
echo "$$" > $FLAGFILE

# ТУТ ВАШ СКРИПТ

rm $FLAGFILE
Ответ написан
cat ./test.sh
#!/bin/bash

if ps ax | grep SCRIPT_NAME| grep -vq grep
    then
        echo "SCRIPT_NAME is already running"
    else
        echo "starting SCRIPT_NAME"
    /etc/init.d/SCRIPT_NAME start
fi
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
посмотреть список процессов - команда ps
отфильтровать список - grep
таки образом, проверив вывод ps -e | grep [имя процесса/скрипта], Вы сможете узнать, работает ли он.
Ответ написан
Комментировать
He11ion
@He11ion
PHP-monkey
supervisord вам в помощь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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