LINUX.ORG.RU

Ответ на: комментарий от SlavikSS

В иниттабе обычно указывают скрипты для ранлевелов. Но если я в этих скриптах запущу некий важный сетевой демон, который всегда должен быть запущен, а он во время своей работы завершиться с ошибкой, он ведь не перезапустится.

anonymous
()
Ответ на: комментарий от SlavikSS

В иниттабе обычно указывают скрипты для ранлевелов. Но если я в этих скриптах запущу некий важный сетевой демон, который всегда должен быть запущен, а он во время своей работы завершится с ошибкой, он ведь не перезапустится.

anonymous
()
Ответ на: комментарий от anonymous

> Но если я в этих скриптах запущу некий важный сетевой демон, который всегда должен быть запущен, а он во время своей работы завершиться с ошибкой, он ведь не перезапустится.

man inittab. пропиши запуск как respawn. тогда перезапустится.

ananas ★★★★★
()
Ответ на: комментарий от mrco

>Ну это можно и обычным скриптом. В цикле ставишь запуск процесса.

Если вас не затруднит, можно показать маленький примерчик? :)

anonymous
()
Ответ на: комментарий от anonymous

>не умеем читать по аглицки?

Умеем читать. И впринципе в иниттаб я могу это впихнуть. Но это некрасиво. Мне бы примерчик баш цикла, которые будет перезапускать процесс.

anonymous
()
Ответ на: комментарий от anonymous

>И впринципе в иниттаб я могу это впихнуть. Но это некрасиво.
Это самый правильный способ.

>Мне бы примерчик баш цикла, которые будет перезапускать процесс.
Для извращенцев:

#!/bin/sh
/usr/local/bin/important_proccess
### Если important_proccess это демон, то раскоментировать след. строку
#wait
exec $0

sdio ★★★★★
()

Установил daemontools. Всем спасибо :)

anonymous
()

использовать супервизор типа monit.

Zulu ★★☆☆
()
Ответ на: комментарий от sdio

### Если 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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.