Биллинговая система Nodeny

Главная категория => Nodeny 50 => Тема начата: Andrey Zentavr от 11 Марта 2012, 03:47:22



Название: RC Скрипт запуска сервера nodeny
Отправлено: Andrey Zentavr от 11 Марта 2012, 03:47:22
Накидал тут используя man rc.d и man rc.subr скрипт запуска ядра nodeny.
Код:
#!/bin/sh
#
# PROVIDE: nodeny
# REQUIRE: NETWORKING LOGIN mysql
# BEFORE: DAEMON
# KEYWORD: shutdown

. /etc/rc.subr

name="nodeny"
rcvar=`set_rcvar`

# set defaults
load_rc_config $name

: ${nodeny_enable="NO"}
: ${nodeny_nice="-15"}

required_files=/usr/local/nodeny/nodeny.cfg
nodeny_command="/usr/local/nodeny/nodeny.pl"
procname="/usr/bin/perl"
pidfile="/var/run/${name}.pid"
command="/usr/sbin/daemon"
flags="-f -p ${pidfile} ${nodeny_command}"

start_precmd=pid_touch
stop_postcmd=pid_rm

pid_touch() {
    touch "${pidfile}"
}

pid_rm() {
    rm -f "${pidfile}"
}

run_rc_command "$1"

Комментарии, фе и т.д. прошу в тему.
Ах, да... на вопрос "Зачем? если есть из коробки" отвечаю - настраивал monit (Сайт: http://mmonit.com, Порты: /usr/ports/sysutils/monit) для мониторинга и реинкарнации умерших сервисов. Оно очень хотело пид-файл с процесса, а коробочный скрипт его создавать пока не умеет (или ...??).
В итоге получил от такое чудо (см. картинку)


Название: Re: RC Скрипт запуска сервера nodeny
Отправлено: smallcms от 11 Марта 2012, 09:45:11
Плюсанул в карму. Теперь когда у процесса ноудени есть pid можно убивать кучу зайцев: контролировать, чтобы запускалось только одно ядро, дописать до состояния [fast|force|one](start|stop|restart|status)
Короче движуха хорошая и нужная.


Название: Re: RC Скрипт запуска сервера nodeny
Отправлено: stix от 11 Марта 2012, 10:05:01
я себе все скрипты nomake демонов сделал через rc.d


Название: Re: RC Скрипт запуска сервера nodeny
Отправлено: Andrey Zentavr от 11 Марта 2012, 15:13:32
Единственное что я ещё не исследовал - это каким именно способом происходит рестарт и жесткий рестарт через веб-админку и как это влияет на PID-файл


Название: Re: RC Скрипт запуска сервера nodeny
Отправлено: Cell от 11 Марта 2012, 16:09:39
Тут недавно такая беда-беда случилась....
Поменяли коммутатор, в который включался саттелит. Ну поменяли и поменяли... и забыли уже про это. Как-то раз произошел аварийный ребут этого саттелита, и вышла печаль.... noserver.pl не стартанул (((, стартовал он, *ука, только руками и без  проблем работал.
Я себе весь мозг выгрыз от непонимания, что происходит. И так его и эдак.... нифига. На определенном этапе моих занятий сексом стало ясно, что демон всетаки запускается, делает две неудачные попытки соединиться с базой и умирает. (кстати бага столетней давности, почему-то до сих пор не профикшина). Стал я копать в сторону порядка запуска демонов. Натыкал, чтобы запускался в самую последнюю очередь. Не помогает и все тут! И тут вспомнилось мне про "волшебную" особенность коммутаторов фирмы Dell (спасибо последнему месту работы): по умолчанию у них включен STP и порты переводятся в режим форвардинг через 20 секунд после поднятия самого линка. Команда фаст-форвард спасла положение. Носервер сразу начал стартовать, но бага как была так и осталась! Если саттелит стартанет быстрее чем сама база данных - то носервер не запуститься!!!
 


Название: Re: RC Скрипт запуска сервера nodeny
Отправлено: Efendy от 11 Марта 2012, 16:17:14
Мона пофиксить в nosat.pm

Код:
 if( !$dbh )
 {
   &Debug('5 sec...');
   sleep 5;
   &ConnectToDB;
 }

заменить на:

Код:
 my $count = 0;
 while( $count++ < 60 && !$dbh )
 {
   Debug('5 sec...');
   sleep 5;
   ConnectToDB();
 }
$Err_connect = 0;
будет в течение 5 минут с интервалом 5 секунд пытаться соединиться, после чего оставит попытки

P.S. Проверяйте (ибо я не проверял):
Код:
ipfw add 10 deny tcp from any to any 3306


Название: Re: RC Скрипт запуска сервера nodeny
Отправлено: stix от 11 Марта 2012, 22:30:07
Код:
 И тут вспомнилось мне про "волшебную" особенность коммутаторов фирмы Dell (спасибо последнему месту работы): по умолчанию у них включен STP и порты переводятся в режим форвардинг через 20 секунд после поднятия самого линка.
такие конченые свичи...сам страдаю от них


Название: Re: RC Скрипт запуска сервера nodeny
Отправлено: Александр (AleksHr) от 12 Марта 2012, 08:52:38
Такая фигня у многих комутаторов, ничего странного не вижу, просто настроить правильно комутатор  :), все дела, а за фикс спасибо, если кто проверит что все гуд - отпишитесь в теме пожалуйста, пофикшу и себе, вдруг пригодится :).