Hello !
Вот скрипт рабочий .
Код
#!/bin/bash
#
# chkconfig: 35 90 12
# description: CS server
#
# get function from functions library
./etc/init.d/functions
DEDSERVER='Dedicated Server'
LONGNAME='server1'
WORKDIR='/home/nippy/server1'
LOGDIR='/home/nippy/server1'
PIDDIR='/home/nippy/server1'
DAEMON='./hlds_run'
LOGNAME='LOG'
IP='xx.xx.xx.xx'
PORT='27015'
MAP='de_dust2'
SIZE='11'
GAME='cstrike'
NAME='cs'
CONFIG='server.cfg'
PING='3'
OPTIONS="-debug -game cstrike -binary ./hlds_i686 -port $PORT +ip $IP +map $MAP +maxplayers $SIZE -pidfile $PIDDIR/$LOGNAME.pid -norestart -pingboost $PING"
service_start(){
if [ ! -f $PIDDIR/$LOGNAME.pid ]; then
echo "Запуск $DEDSERVER - $LONGNAME"
echo "Адрес: $IP"
echo "Порт: $PORT"
echo "Players: $SIZE players"
cd $WORKDIR
#screen -A -m -d -S hlds
$DAEMON $OPTIONS >> $LOGDIR/$LOGNAME.log 2>&1 &
sleep 1
ps |grep ./bin/sh/ | grep $DAEMON |grep $PORT |awk '{ print $1}' >> $PIDDIR/$LOGNAME.pid
echo "$LONGNAME process ID записан в $PIDDIR/$LOGNAME.pid"
echo "$DEDSERVER запущен"
else
echo "$DEDSERVER - $LONGNAME уже запущен"
fi
}
service_stop(){
if [ -f $PIDDIR/$LOGNAME.pid ]; then
echo "Остановка $LONGNAME"
for id in `cat $PIDDIR/$LOGNAME.pid`
do kill -9 $id
echo "Убиваем process ID $id"
echo "Удаляем PID файл $LONGNAME"
rm -rf $PIDDIR/$LOGNAME.pid
break
done
echo "$LONGNAME остановлен."
else
echo "Невозможно остановить $LONGNAME. Сервер НЕ запущен."
fi
}
service_chek(){
id=$(< $PIDDIR/$LOGNAME.pid)
if [ -e "/proc/$id/exe" ]; then
echo "Процесс сущестует $id"
else
service_stop
sleep 1
service_start
fi
}
case "$1" in
'start')
service_start
;;
'stop')
service_stop
;;
'restart')
service_stop
sleep 1
service_start
;;
'chek')
service_chek
;;
*)
echo "Usage $0 start|stop|restart|chek"
esac
Сервер стартует нормально , добавляю его в автозагрузку chkconfig --add "scripthlds" on .
После проверяю ntsysv скрипт добавлен и включён .
REBOOT
А сервер не стартует ( хотя .pid файл создаёт .
Подскажите как поправить .
PS:Скрипт работает как с под root так и c user .
Отредактировал: L_O_T_U_S, - 31.12.2010, 3:45