Биллинговая система Nodeny
23 Ноября 2024, 07:47:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: RC Скрипт запуска сервера nodeny  (Прочитано 6457 раз)
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« : 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) для мониторинга и реинкарнации умерших сервисов. Оно очень хотело пид-файл с процесса, а коробочный скрипт его создавать пока не умеет (или ...??).
В итоге получил от такое чудо (см. картинку)
Записан
smallcms
NoDeny
Старожил
*

Карма: 64
Offline Offline

Сообщений: 279



Просмотр профиля WWW
« Ответ #1 : 11 Марта 2012, 09:45:11 »

Плюсанул в карму. Теперь когда у процесса ноудени есть pid можно убивать кучу зайцев: контролировать, чтобы запускалось только одно ядро, дописать до состояния [fast|force|one](start|stop|restart|status)
Короче движуха хорошая и нужная.
Записан

stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #2 : 11 Марта 2012, 10:05:01 »

я себе все скрипты nomake демонов сделал через rc.d
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #3 : 11 Марта 2012, 15:13:32 »

Единственное что я ещё не исследовал - это каким именно способом происходит рестарт и жесткий рестарт через веб-админку и как это влияет на PID-файл
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #4 : 11 Марта 2012, 16:09:39 »

Тут недавно такая беда-беда случилась....
Поменяли коммутатор, в который включался саттелит. Ну поменяли и поменяли... и забыли уже про это. Как-то раз произошел аварийный ребут этого саттелита, и вышла печаль.... noserver.pl не стартанул (((, стартовал он, *ука, только руками и без  проблем работал.
Я себе весь мозг выгрыз от непонимания, что происходит. И так его и эдак.... нифига. На определенном этапе моих занятий сексом стало ясно, что демон всетаки запускается, делает две неудачные попытки соединиться с базой и умирает. (кстати бага столетней давности, почему-то до сих пор не профикшина). Стал я копать в сторону порядка запуска демонов. Натыкал, чтобы запускался в самую последнюю очередь. Не помогает и все тут! И тут вспомнилось мне про "волшебную" особенность коммутаторов фирмы Dell (спасибо последнему месту работы): по умолчанию у них включен STP и порты переводятся в режим форвардинг через 20 секунд после поднятия самого линка. Команда фаст-форвард спасла положение. Носервер сразу начал стартовать, но бага как была так и осталась! Если саттелит стартанет быстрее чем сама база данных - то носервер не запуститься!!!
 
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #5 : 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
« Последнее редактирование: 11 Марта 2012, 16:19:56 от Efendy » Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #6 : 11 Марта 2012, 22:30:07 »

Код:
 И тут вспомнилось мне про "волшебную" особенность коммутаторов фирмы Dell (спасибо последнему месту работы): по умолчанию у них включен STP и порты переводятся в режим форвардинг через 20 секунд после поднятия самого линка.
такие конченые свичи...сам страдаю от них
Записан
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« Ответ #7 : 12 Марта 2012, 08:52:38 »

Такая фигня у многих комутаторов, ничего странного не вижу, просто настроить правильно комутатор  Улыбающийся, все дела, а за фикс спасибо, если кто проверит что все гуд - отпишитесь в теме пожалуйста, пофикшу и себе, вдруг пригодится Улыбающийся.
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!