Нужен сабж под Линукс. Тот скрипт, который есть в дистрибутиве ... ну, все равно, что его нет. Может быть было бы лучше, если бы его не было совсем, тогда хочешь-нехочешь пришлось бы писать самому, а так лениво переделывать.
Наверняка многие уже переделали. Поделитесь. Опубликуйте в этом топике.
Скрипт, создающий сервис utm5_core
в подфоруме статьи есть
или здесь или в старом http://old.netup.ru/phorum/index.php
или здесь или в старом http://old.netup.ru/phorum/index.php
Хм... Я хотел пойти по наиболее простому пути.в подфоруме статьи есть
А искать на форуме, так на это уйдет уйма времени.
Намного проще будет залесть в каталог /etc/rc.d/init.d, посмотреть как нужно писать такие скрипты и сделать самому по аналогии.
Так там еще и поиск не работаетили в старом http://old.netup.ru/phorum/index.php
А по этому форуму прошелся поиском и ничего на эту тему не нашел.
Никто так и не поделился.
Пришлось самому мучиться.
Вот, может кому пригодится:
Только не называйте сервис так же, как исполняемый файл (т.е. нельзя называть его utm5_core), а то будут возникать косяки при останове (он сам себя будет прибивать раньше времени).
Пришлось самому мучиться.
Вот, может кому пригодится:
Код: Выделить всё
#!/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 $?