В иниттабе обычно указывают скрипты для ранлевелов. Но если я в этих скриптах запущу некий важный сетевой демон, который всегда должен быть запущен, а он во время своей работы завершиться с ошибкой, он ведь не перезапустится.
В иниттабе обычно указывают скрипты для ранлевелов. Но если я в этих скриптах запущу некий важный сетевой демон, который всегда должен быть запущен, а он во время своей работы завершится с ошибкой, он ведь не перезапустится.
> Но если я в этих скриптах запущу некий важный сетевой демон, который всегда должен быть запущен, а он во время своей работы завершиться с ошибкой, он ведь не перезапустится.
man inittab. пропиши запуск как respawn. тогда перезапустится.
>И впринципе в иниттаб я могу это впихнуть. Но это некрасиво.
Это самый правильный способ.
>Мне бы примерчик баш цикла, которые будет перезапускать процесс.
Для извращенцев:
#!/bin/sh
/usr/local/bin/important_proccess
### Если important_proccess это демон, то раскоментировать след. строку
#wait
exec $0
### Если important_proccess это демон, то раскоментировать след. строку
#wait
Дык если это настоящий демон - то не поможет нифига, зациклится.
Собственно рабочий процесс демона не является ребенком шелла.
Если демон пишет pid-файл, то (непортабельно) что-то типа
PROG=/path/to/binary
PIDFILE=/var/run/prog.pid
while true; do
$PROG
while -f $PIDFILE && PID=`cat $PIDFILE` [ XX`readlink /proc/$PID/exe` == XX$PROG ]; do
sleep 1;
done;
done