в скрипте cstart и hstart запускают один и тот же бинарник (hlds_amd), просто с разными параметрами
и если они оба запущены, то cstop или hstop убивают рандомно один из них
а надо, чтоб hstop убивал процесс, порожденный hstart и cstop убивал процесс, порожденный cstart соответственно
надо как-то их разделять. возможно по pid, но как это сделать - не знаю. кто-нибудь может помочь?
Код: Выделить всё
#!/bin/bash
qstart()
{
cd /games/q3
./q3ded +cvar_restart +set com_hunkmegs 32 +set net_port 27960 +set port 27960 +set net_ip 14.14.7.10 +set dedicated 1 +set vm_game 2 +set vm_cgame 2 +set vm_ui 2 +set sv_strictAuth 0 +set sv_punkbuster 0 +set sv_lanForceRate 1 +set sv_maxrate 15000 +set sv_maxclients 12 +set fraglimit 0 +set timelimit 20 +set sv_hostname PerevalNET +set sv_pure 0 +map q3dm6 +exec server.cfg >&/dev/null &
}
qstop()
{
killall q3ded
}
cstart()
{
cd /games/hlds
./cs_run -game "cstrike" -port 27015 +ip 14.14.7.10 +map de_dust +sv_lan 1 +maxplayers 20 >&/dev/null &
}
cstop()
{
killall cs_run
killall hlds_amd
}
hstart()
{
cd /games/hlds
./hl_run -game valve -port 27016 +ip 14.14.7.10 +map crossfire +sv_lan 1 +maxplayers 10 >&/dev/null &
}
hstop()
{
killall hl_run
killall hlds_amd
}
case "$1" in
q3start)
echo "Starting q3 server: q3ded"
qstart
;;
q3stop)
echo "Stopping q3 server: q3ded"
qstop
;;
csstart)
echo "Starting CS server: cs_run"
cstart
;;
csstop)
echo "Stopping CS server: cs_run"
cstop
;;
hlstart)
echo "Starting HL server: hl_run"
hstart
;;
hlstop)
echo "Stopping HL server: hl_run"
hstop
;;
*)
echo "Usage: q3start|q3stop|csstart|csstop|hlstart|hlstop "
exit 1
;;
esac
exit 0