Скрипт, создающий сервис utm5_core

Технические вопросы по UTM 5.0
Ответить
wolf
Сообщения: 42
Зарегистрирован: Вс апр 17, 2005 00:25

Скрипт, создающий сервис utm5_core

Сообщение wolf »

Нужен сабж под Линукс. Тот скрипт, который есть в дистрибутиве ... ну, все равно, что его нет. Может быть было бы лучше, если бы его не было совсем, тогда хочешь-нехочешь пришлось бы писать самому, а так лениво переделывать.
Наверняка многие уже переделали. Поделитесь. Опубликуйте в этом топике.

Аватара пользователя
dalex
Сообщения: 1306
Зарегистрирован: Пт янв 21, 2005 11:54

Сообщение dalex »

в подфоруме статьи есть
или здесь или в старом http://old.netup.ru/phorum/index.php

wolf
Сообщения: 42
Зарегистрирован: Вс апр 17, 2005 00:25

Сообщение wolf »

в подфоруме статьи есть
Хм... Я хотел пойти по наиболее простому пути.
А искать на форуме, так на это уйдет уйма времени.
Намного проще будет залесть в каталог /etc/rc.d/init.d, посмотреть как нужно писать такие скрипты и сделать самому по аналогии.
или в старом http://old.netup.ru/phorum/index.php
Так там еще и поиск не работает

А по этому форуму прошелся поиском и ничего на эту тему не нашел.

wolf
Сообщения: 42
Зарегистрирован: Вс апр 17, 2005 00:25

Сообщение wolf »

Нашел! На старом форуме в "статьях"
(Мне же сразу сказали, что искать нужно в статьях, а я именно на это и не обратил внимания)

Правда, там запускается utm5_core.
safe_utm5_core игнорируется как класс. Возможно он тогда не существовал?
Придется переделывать. Опять не удается тупо содрать!

Аватара пользователя
dalex
Сообщения: 1306
Зарегистрирован: Пт янв 21, 2005 11:54

Сообщение dalex »

safe_utm5_core игнорируется как класс. Возможно он тогда не существовал?
он не нужен в том скрипте.
Хочешь юзать safe_utm5_core возьми скрипт от мускуля и переделай

wolf
Сообщения: 42
Зарегистрирован: Вс апр 17, 2005 00:25

Сообщение wolf »

Никто так и не поделился.
Пришлось самому мучиться.
Вот, может кому пригодится:

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

#!/bin/sh
# chkconfig: 2345 86 73
# description: UTM Billing System Core

trap '' 1 2 3 15
. /etc/rc.d/init.d/functions
pid_file=/var/run/utm5_core.pid
utm_exec=safe_utm5_core
err_log=/netup/utm5/log/utm5_core.log
exec_dir=/netup/utm5/bin
LOG=/netup/utm5/log/main.log

start(){
        if [ -x $exec_dir/$utm_exec ]; 
	then
           echo "Starting utm5_core"
	   $exec_dir/$utm_exec start &
	      RET=$?
              [ $RET -eq 0 ] && echo_success
              [ $RET -ne 0 ] && echo_failure
	      [ $RET -eq 0 ] && touch /var/lock/subsys/utm5_core
           echo ========= $$ "Starting utm5_core" ===========
 	   echo === `date` ============ $$ "Starting utm5_core" ================ >>$LOG
	   return $RET
	else
	   echo $exec_dir/$utm_exec no such file
        fi
}
stop(){
        echo "======Stopping utm5_core======" >>$LOG
        RET=1
        PID1=`cat $pid_file 2>/dev/null` >/dev/null 2>&1
        PID2=`ps ax | grep utm5_core | grep -v stop | grep safe | awk {'print $1'}`
echo =1====PID1 $PID1 ====PID2 $PID2 ===== >>$LOG
        killall -s USR1 utm5_core >>$LOG 2>>$LOG
	      RET1=$?
              [ $RET1 -eq 0 ] && RET=0
              [ $RET1 -eq 0 ] && echo_success
              [ $RET1 -ne 0 ] && echo_failure
	      [ $RET1 -eq 0 ] && rm -f /var/lock/subsys/utm5_core
        PID1=`cat $pid_file 2>/dev/null` >/dev/null 2>&1
        PID2=`ps ax | grep utm5_core | grep -v stop | grep safe | awk {'print $1'}`
echo =2====PID1 $PID1 ====PID2 $PID2 ===== >>$LOG
        sleep 5
        PID1=`cat $pid_file 2>/dev/null` >/dev/null 2>&1
        PID2=`ps ax | grep utm5_core | grep -v stop | grep safe | awk {'print $1'}`
echo =3====PID1 $PID1 ====PID2 $PID2 ===== >>$LOG
        kill -9 $PID2 >>$LOG 2>>$LOG
	      RET2=$?
              [ $RET2 -eq 0 ] && RET=0
              [ $RET2 -eq 0 ] && echo_success
              [ $RET1 -ne 0 -a $RET2 -ne 0 ] && echo_failure
	      [ $RET1 -ne 0 -a $RET2 -eq 0 ] && rm -f /var/lock/subsys/utm5_core
        PID1=`cat $pid_file 2>/dev/null` >/dev/null 2>&1
        PID2=`ps ax | grep utm5_core | grep -v stop | grep safe | awk {'print $1'}`
echo =4====PID1 $PID1 ====PID2 $PID2 ===== >>$LOG
        killall -9 utm5_core >>$LOG 2>>$LOG
	      RET3=$?
              [ $RET3 -eq 0 ] && RET=0
              [ $RET3 -eq 0 ] && echo_success
              [ $RET1 -ne 0 -a $RET2 -ne 0 -a $RET3 -ne 0 ] && echo_failure
	      [ $RET1 -ne 0 -a $RET2 -ne 0 -a $RET3 -eq 0 ] && rm -f /var/lock/subsys/utm5_core
              [ $RET -eq 0 ] && echo ====== NORMAL SHUTDOWN ======= RETVAL= $RET =============
              [ $RET -ne 0 ] && echo =========== ERROR ============ RETVAL= $RET =============
              [ $RET -eq 0 ] && echo === `date` ===NORMAL SHUTDOWN=====RETVAL= $RET ======= >>$LOG
              [ $RET -ne 0 ] && echo === `date` ========ERROR==========RETVAL= $RET ======= >>$LOG
        return $RET
}
 
restart(){
    stop
    sleep 5
    start
}

case "$1" in
  start)       start;;
  stop)        stop;;
  restart)     restart;;
  *)    echo $"Usage: $0 {start|stop|restart}"    exit 1
esac

exit $?
Только не называйте сервис так же, как исполняемый файл (т.е. нельзя называть его utm5_core), а то будут возникать косяки при останове (он сам себя будет прибивать раньше времени).

Аватара пользователя
dalex
Сообщения: 1306
Зарегистрирован: Пт янв 21, 2005 11:54

Сообщение dalex »


Ответить