Автозапуск демона после падения

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
dotnet
проходил мимо

Автозапуск демона после падения

Непрочитанное сообщение dotnet » 2009-02-18 13:33:37

Ни у кого случайно нет bash скрипта который проверяет наличие в памяти процесса и если его нет - запускает. По идеи это не сложно в написании, но сам не умею. Буду признателен если кто поделится.

* Проблема в том что почему-то через какое-то время вылетает php-cgi (FastCGI) сервер.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Автозапуск демона после падения

Непрочитанное сообщение terminus » 2009-02-18 13:38:40

Dwatch (Daemon Watch) is a program that watches over other programs and performs actions based on conditions specified in a configuration file. See dwatch.conf for an example of what the file might look like.

Dwatch is meant to be run from cron at regular intervals.
http://www.freshports.org/sysutils/dwatch/
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Termitnik
сержант
Сообщения: 169
Зарегистрирован: 2008-04-05 20:09:45
Откуда: Киев

Re: Автозапуск демона после падения

Непрочитанное сообщение Termitnik » 2009-02-18 13:50:24

Насколько я понимаю, достаточно будет следующего:

Код: Выделить всё

#!/bin/sh
if ps ax | grep <имя процесса> > /dev/null; then echo "Process is running"
else echo "Process is NOT running, restarting";
<путь к стартовому сценарию> start
fi

Гость
проходил мимо

Re: Автозапуск демона после падения

Непрочитанное сообщение Гость » 2009-02-18 14:15:07

http://www.freshports.org/sysutils/monitord/
This port allows one to monitor other standalone services and
automatically restart them if they are accidentally and unwittingly
terminated, or crash either because of instability or a DoS attack.
It simplifies a task capable of being performed by cron(8) by not
requiring custom scripts to be written for each service being
monitored. The configuration file is simple and easily setup.

Аватара пользователя
gloom
лейтенант
Сообщения: 738
Зарегистрирован: 2008-03-13 16:29:12
Откуда: UA

Re: Автозапуск демона после падения

Непрочитанное сообщение gloom » 2009-02-18 14:15:51

http://www.lissyara.su/?id=1268
http://www.lissyara.su/?id=1266
все велосипеды давно изобретены

dotnet
проходил мимо

Re: Автозапуск демона после падения

Непрочитанное сообщение dotnet » 2009-02-19 10:05:58

Всем спасибо за помощь. Установил monit , очень понравилась. Но возникла другая проблема :). Там при добавлении процесса за которым нужно следить, требуется указать его .pid файл. Я порылся в /var/run но pid файла процесса php-cgi так и не нашел. Как это можно сделать :)?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Автозапуск демона после падения

Непрочитанное сообщение zingel » 2009-02-19 10:15:37

добавить в конфиг

Код: Выделить всё

pidfile="/var/run/${name}.pid";
Z301171463546 - можно пожертвовать мне денег

dotnet
проходил мимо

Re: Автозапуск демона после падения

Непрочитанное сообщение dotnet » 2009-02-19 10:20:30

zingel писал(а):добавить в конфиг

Код: Выделить всё

pidfile="/var/run/${name}.pid";
А про какой конфиг идет речь? php.ini?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Автозапуск демона после падения

Непрочитанное сообщение zingel » 2009-02-19 10:21:50

не, cgi
Z301171463546 - можно пожертвовать мне денег

dotnet
проходил мимо

Re: Автозапуск демона после падения

Непрочитанное сообщение dotnet » 2009-02-19 10:26:32

А можно подробней. Я если что про подпись вашу не забуду :)

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Автозапуск демона после падения

Непрочитанное сообщение zingel » 2009-02-19 10:29:28

можно да

Код: Выделить всё

Создаём скрипт запуска fcgi-сервера:
/usr/local/etc/rc.d/php-cgi

#!/bin/sh
#
# PROVIDE: php_fastcgi
# REQUIRE: DAEMON
# BEFORE:  LOGIN
# KEYWORD: shutdown

. /etc/rc.subr

name="php_fastcgi"
rcvar=`set_rcvar`

load_rc_config $name

: ${php_fastcgi_enable="NO"}
: ${php_fastcgi_user="www"}
: ${php_fastcgi_bindaddr="127.0.0.1"}
: ${php_fastcgi_bindport="9000"}
: ${php_fastcgi_children="5"}
: ${php_fastcgi_max_requests="1000"}
: ${php_fastcgi_allowed_env=""}

export PHP_FCGI_CHILDREN=${php_fastcgi_children};
export PHP_FCGI_MAX_REQUESTS=${php_fastcgi_max_requests};

command="/usr/local/bin/php-cgi";
command_args="-q -b ${php_fastcgi_bindaddr}:${php_fastcgi_bindport} &";
pidfile="/var/run/${name}.pid";

_allowed_env="ORACLE_HOME PATH USER PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS";
_allowed_env="${_allowed_env} ${php_fastcgi_allowed_env}";

start_precmd=start_precmd;
start_postcmd="sleep 1;ps -U ${php_fastcgi_user} -o 'pid,command'|grep ${command}|head -1|\
		awk '{print \$1}' > ${pidfile}";
stop_postcmd=stop_postcmd;

start_precmd()
{
   export USER=${php_fastcgi_user};
   E=
   for i in ${_allowed_env}; do
       eval _val="\$$i";
       if [ "${_val}_x" != "_x" ]; then
           eval _add="$i=$_val";
           E="${E} ${_add}";
       fi
   done
   command="env - ${E} ${command}";
}

stop_postcmd()
{
    rm -f $pidfile
}

load_rc_config $name;

run_rc_command "$1";
wiki.lissyara.su/wiki/Nginx_php-cgi
Z301171463546 - можно пожертвовать мне денег

dotnet
проходил мимо

Re: Автозапуск демона после падения

Непрочитанное сообщение dotnet » 2009-02-19 10:48:11

А почему ": ${php_fastcgi_enable="NO"}" установлен как NO, может поправить на YES? У меня связка nginx + php fast cgi

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Автозапуск демона после падения

Непрочитанное сообщение zingel » 2009-02-19 13:25:59

Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Автозапуск демона после падения

Непрочитанное сообщение zingel » 2009-02-22 0:00:36

ну и где мои деньги? (с)

p.s. зачем напиз...л стаорму человеку?
Z301171463546 - можно пожертвовать мне денег