Рябята подскажите!
Debian 5
Есть бинарнык допустим test в директори bin
Запуск его происходит /bin/test -b
В топе имя процеса для примера test
Задача каждые 2 секунды отслеживать активный ли процесс. Если нет его автоматом запускать..
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Debian GNU/Linux → Автоматический перезапуск при падении
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Рябята подскажите!
Debian 5
Есть бинарнык допустим test в директори bin
Запуск его происходит /bin/test -b
В топе имя процеса для примера test
Задача каждые 2 секунды отслеживать активный ли процесс. Если нет его автоматом запускать..
Проверить наличие процесса можно
ps -A | grep testА отслежывать автоматом каждые 2 секунды и в сучаи падения запускать просто нада чтобы ето все дело на автомате было
neol, если я не ошибаюсь, предложенный вами скрипт будет просто безостановочно запускать процесс /bin/test -b, даже если он уже запущен.
neol, если я не ошибаюсь, предложенный вами скрипт будет просто безостановочно запускать процесс /bin/test -b, даже если он уже запущен.
Если это не демон, то не будет. Да и демоны обычно имеют в арсенале ключи, позволяющие запускать их не как фоновый процесс. Надо было сразу уточнить.
neol, а можете расказать, почему и как работает этот гениальный скрипт для нубов в bash-скриптиге?
Тогда уж
#!/bin/bash
while true; do
if [ pidof test ] then sleep 2;
else test -b;
fi;
doneЯ, конечно, в скриптинге не силен, но думаю, что как-то так. Проверить сейчас не могу, я с телефона.
neol, а можете расказать, почему и как работает этот гениальный скрипт для нубов в bash-скриптиге?
Баш выполняет команды последовательно и если не отправлять запущенную софтину в фон ( test -b & ), то следующая итерация бесконечного цикла начнется только после завершения ( или падения ) запущенной софтины.
PS Меня трижды из пед университета выгоняли, так что педагогическими талантами явно не блещу (: Если что-то непонятно, спрашивайте.
Тогда уж
#!/bin/bash while true; do if [ pidof test ] then sleep 2; else test -b; fi; doneЯ, конечно, в скриптинге не силен, но думаю, что как-то так. Проверить сейчас не могу, я с телефона.
Да, так лучше, только с ";" напутали чуть-чуть. Если я сам не запутался, то рабочий вариант будет:
while true; do
if [ "`pidof test`" ] ; then sleep 2
else; test -b
fi
doneА еще лучше
while true
do
if [ "`pidof test`" ]
then
sleep 2
else
test -b
fi
doneЛегче прочитать и понять, ИМХО.
Конструкция [ "`pidof test`" ] сгорожена потому что:
`pidof test` - вернет результат выполнения команды, а без кавычек ругнется
"`pidof test`" - интерпретирует этот результат как строку (иначе будет ругань при возвращении нескольких пидов)
neol, только сейчас понял про "отправлять в фон". Всё действительно просто, спасиб что разьяснили)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Linux Forum → Debian GNU/Linux → Автоматический перезапуск при падении
Форум работает на PunBB, при поддержке Informer Technologies, Inc