Обсуждаем все, что относится к выделенным серверам *NIX (Unix, Linux) и Windows
-
irbis_triffle
- Нович0к
- Сообщения: 1
- Зарегистрирован: 11.02.2010
#1
Сообщение
11.02.2010, 07:09
Здравствуйте!
Понравился Ваш скрипт, решил попробовать, но столкнулся с проблемой ручной "остановки -> запуска":
Код: Выделить всё
XxXxX@xXxXx:/usr/games/hlds_dm$ ./go3.sh status
hlds not running # сервер не запущен
XxXxX@xXxXx:/usr/games/hlds_dm$ ./go3.sh start # сервер запустился
XxXxX@xXxXx:/usr/games/hlds_dm$ ./go3.sh status
hlds running as pid 4086
XxXxX@xXxXx:/usr/games/hlds_dm$ ./go3.sh stop # сервер остановился
Successfuly stopped server
XxXxX@xXxXx:/usr/games/hlds_dm$ ./go3.sh status
hlds not running
XxXxX@xXxXx:/usr/games/hlds_dm$ ./go3.sh start
Server already running! (pid=4084) # сервер НЕ запущен
XxXxX@xXxXx:/usr/games/hlds_dm$
Повторный запуск уже не возможен
Буду очень признателен за помощь ))
P.S.Предполагаю Ваш интерес к скрипту запуска, поэтому сразу привожу:
Скрипт запуска
#!/bin/bash
./hlds_run -binary ./hlds_i686 -console -game cstrike -secure -pidfile hlds.pid -norestart -port 27015 +maxplayers 24 +map de_aztec
-
jamaicada
- Лейтенант
- Сообщения: 103
- Зарегистрирован: 31.05.2009
#2
Сообщение
11.02.2010, 12:13
Вы бы не скрипт запуска а go3.sh показывали. Ошибка в нем.
Вот допустим как у меня. Для работы нужен screen и мозг, дабы поправить все под свои нужды.
init.d скрипт для linux
#!/bin/sh
# The user that will run the server
USER=user
# Leave this alone.
NAME=cstrike
PATH=/bin:/usr/bin:/sbin:/usr/sbin
# DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
DIR=/usr/games
# Leave this alone.
DAEMON=hldsds_run
# IP of running server. To be used when status called only.
IPADRR="192.168.1.1"
# Internet-server:
PARAMS="-console -game tf +ip $IPADRR -port 27015 +maxplayers 32 +map pl_goldrush -pidfile $NAME.pid -pingboost 2 -debug"
# Leave this alone.
DESC="Cool server"
case "$1" in
start)
if [[ `su - -c "screen -ls |grep $NAME" $USER` ]]
then
echo "$NAME is already running!"
else
echo "Starting $DESC: $NAME"
su - -c "cd $DIR; screen -m -d -S $NAME ./$DAEMON $PARAMS" $USER
fi
;;
stop)
if [[ `su - -c "screen -ls |grep $NAME" $USER` ]]
then
echo -n "Stopping $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
;;
restart)
if [[ `su - -c "screen -ls |grep $NAME" $USER` ]]
then
echo -n "Stopping $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
echo -n "Starting $DESC: $NAME"
su - -c "cd $DIR; screen -m -d -S $NAME ./$DAEMON $PARAMS" $USER
echo " ... done."
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0