stop() {
if [ -f $srv_path/cs.run ]; then
killall hlds_run
killall hlds_i686
cd $srv_path
rm -R ./cs.run
echo "Stpoing HLTV server [ ok ]
"
else
echo -n "Stoping HLTV [ FAILD ]
"
fi
}
при этом создаеться pid файл! чем неудобно вышенаписанное - убивает все процессы(( а мне надо поределенные!
как узнать точнее прочитать этот ID процесса с pid файла и остановить процесс
что изменить в этой функции?
пардон! пид файл не создаеться((( походу никак не обойти ситуацию(((
тогда подскажите - есть такой скрипт
Код: Выделить всё
#! /bin/sh
#####################################################
##### start/stop/restart script v2 by sentenced #####
#####################################################
#srv1_name; Server name, example cs_pub, do not use long names with spaces!
#srv1_fname; full server name like CS 1.6 PUB Server
#srv1_script; if server is hl1 then type hlds_run if server is hl2 or CS:S type srcds_run
#srv1_ip; IP address of server
#srv1_port; Server port
#srv1_gametype; Gametype, example cstrike, dods, or dod, etc.
#srv1_players; maximum players on server
#srv1_map; starting map
#srv1_svlan; sv_lan 0/1, if your server is nosteam you need to turn it on, type 1
#srv1_pid; server uses this file to write there process id
#srv1_heapsize; this opt sets how much [max] RAM in kb server will use
#srv1_opts; type there other server opts, like -nomaster -insecure
####################################################
srv1_name=CS2.VZLETKA.NET
srv1_fname="CS2.VZLETKA.NET"
srv1_dirpath="/var/servers/cs3fun/nosteam"
srv1_script=hlds_run
srv1_ip=89.105.128.155
srv1_port=27015
srv1_gametype=cstrike
srv1_players=22
srv1_map=de_dust2
srv1_svlan=1
srv1_pid=cspub.pid
srv1_heapsize=256000
srv1_opts="-nomaster -insecure -pingboost 2"
#####################################################
# don't tuch anything below this line!
#####################################################
#srv1_chk=`screen -ls | grep $srv1_name`
#srv1_chk=CS2.VZLETKA.NET
function srv1_started() {
if [ -z $srv1_chk ]; then
return 1
else
return 0
fi
}
function srv1_stop() {
srv1_started
if [ $? -eq 1 ]; then
return 1
fi
/usr/bin/screen -S $srv1_name -X quit >/dev/null 2>&1
return 0
}
function srv1_start() {
srv1_started
if [ $? -eq 0 ]; then
return 1
fi
cd $srv1_dirpath $srv1_name ./$srv1_script -game $srv1_gametype +maxplayers $srv1_players +map $srv1_map +port $srv1_port -heapsize $srv1_heapsize +sv_lan $srv1_svlan $srv1_opts -pidfile $srv1_pid
return 0
}
function srv1_echo() {
echo -n $2
$1
if [ $? -eq 0 ]; then
echo -e "\t\t[ OK ]"
else
echo -e "\t\t[FAIL]"
fi
return 0
}
case $1 in
start)
srv1_echo srv1_start "STARTING $srv1_fname: `basename $0` start"
;;
stop)
srv1_echo srv1_stop "STOPING $srv1_fname: `basename $0` stop"
;;
restart)
srv1_echo srv1_stop "STOPING $srv1_fname: `basename $0` stop"
srv1_echo srv1_start "STARTING $srv1_fname: `basename $0` start"
;;
*)
echo "Use Commands: `basename $0` start|stop|restart"
;;
esac
он хорош собой но есть проблема! когда его добавляешь в автозагрузку! появляеться консоль сервера и линукс дальше не грузится(( пока не введешь quit - этот quit собственно относиться к серверу запускаемому
просто в этом скрипте последнем оставнока идет вписывая в консоль сервера quit
Код: Выделить всё
function srv1_stop() {
srv1_started
if [ $? -eq 1 ]; then
return 1
fi
/usr/bin/screen -S $srv1_name -X quit >/dev/null 2>&1
return 0
}
меня и это устраивает если бы консоль эта открывалась от другого юзера чтоб я ее короче не видел