C
console1988
Здравствуйте, приобрел физический сервер
OC Linux Debian 6
закачал сервер всё как полагается, поставил плагины и т.д.
готовый немного кривоватый продукт, сервер работает,
для запуска сервера, пока что 'вручную' использую команду
./start.sh start
либо из прямой строки весь путь ./......./start.sh start
В ручную крашил сервер, он сам поднимается
Но в некоторых случаях он крашится как-то по другому и зависает наглухо при этом наблюдается 100% нагрузка на ЦП
приходится ручками убивать процессор и запускать по новой
собственно говоря
содержание файла start.sh отвечающего за запуск сервера
что нужно сделать? чтобы он поднимался? хотя бы через 2-3 минуты, если не отвечает
создать какой то screen или еще что-то ...
Подскажите пожалуйста, можно ли обойтись кодом лишь в одном start.sh ?
если можно, выложите пожалуйста исправный вариант...
*** з.ы. Максимально доступным языком
потому что я практически 0 в линуксе на данный момент
OC Linux Debian 6
закачал сервер всё как полагается, поставил плагины и т.д.
готовый немного кривоватый продукт, сервер работает,
для запуска сервера, пока что 'вручную' использую команду
./start.sh start
либо из прямой строки весь путь ./......./start.sh start


В ручную крашил сервер, он сам поднимается
Но в некоторых случаях он крашится как-то по другому и зависает наглухо при этом наблюдается 100% нагрузка на ЦП

приходится ручками убивать процессор и запускать по новой
собственно говоря
содержание файла start.sh отвечающего за запуск сервера
#!/bin/sh
D1=$(readlink -f "$0")
BINARYPATH="$(dirname "${D1}")"
cd "${BINARYPATH}"
# Server params
SERVER_NAME="CSS Pub#1 Server"
SERVER_PIDNAME="css_pub1"
SERVER_DAEMON='srcds_run'
SERVER_PARAMS="-game cstrike +ip 85.234.33.65 -port 27015 +tv_port 27016 -maxplayers 64 -noinsecure +map de_dust2"
# <<
if [ ! -e $SERVER_DAEMON ]; then
echo "Could not locate binary file, aborting"
exit 5
fi
case "$1" in
start)
if [ -e $SERVER_PIDNAME.pid ]; then
if ( kill -0 $(cat $SERVER_PIDNAME.pid) 2> /dev/null ); then
echo "The server is already running, try restart or stop"
exit 1
else
echo "${SERVER_PIDNAME}.pid found, but no server running. Possibly your previously started server crashed"
rm $SERVER_PIDNAME.pid
fi
fi
echo "Starting ${SERVER_NAME} server"
if [ -x "srcds_run" ]; then
"./${SERVER_DAEMON}" ${SERVER_PARAMS} > /dev/null &
echo $! > $SERVER_PIDNAME.pid
echo "server started"
else
echo "${SERVER_DAEMON} is not exectuable, cannot start server"
fi
;;
stop)
if [ -e $SERVER_PIDNAME.pid ]; then
echo "Stopping ${SERVER_NAME} server"
if ( kill -9 $(cat $SERVER_PIDNAME.pid) 2> /dev/null ); then
c=1
while [ "$c" -le 300 ]; do
if ( kill -9 $(cat $SERVER_PIDNAME.pid) 2> /dev/null ); then
echo -n "."
sleep 1
else
break
fi
c=$((++c))
done
fi
if ( kill -0 $(cat $SERVER_PIDNAME.pid) 2> /dev/null ); then
echo "Server is not shutting down cleanly - killing"
kill -KILL $(cat $SERVER_PIDNAME.pid)
else
echo -n "done"
fi
rm $SERVER_PIDNAME.pid
else
echo "No server running (${SERVER_PIDNAME}.pid is missing)"
exit 7
fi
;;
restart)
$0 stop && $0 start || exit 1
;;
status)
if [ -e $SERVER_PIDNAME.pid ]; then
if ( kill -0 $(cat $SERVER_PIDNAME.pid) 2> /dev/null ); then
echo "Server is running"
else
echo "Server seems to have died"
fi
else
echo "No server running (${SERVER_PIDNAME}.pid is missing)"
fi
;;
*)
echo "Usage: ${0} {start|stop|restart|status}"
exit 2
esac
exit 0
D1=$(readlink -f "$0")
BINARYPATH="$(dirname "${D1}")"
cd "${BINARYPATH}"
# Server params
SERVER_NAME="CSS Pub#1 Server"
SERVER_PIDNAME="css_pub1"
SERVER_DAEMON='srcds_run'
SERVER_PARAMS="-game cstrike +ip 85.234.33.65 -port 27015 +tv_port 27016 -maxplayers 64 -noinsecure +map de_dust2"
# <<
if [ ! -e $SERVER_DAEMON ]; then
echo "Could not locate binary file, aborting"
exit 5
fi
case "$1" in
start)
if [ -e $SERVER_PIDNAME.pid ]; then
if ( kill -0 $(cat $SERVER_PIDNAME.pid) 2> /dev/null ); then
echo "The server is already running, try restart or stop"
exit 1
else
echo "${SERVER_PIDNAME}.pid found, but no server running. Possibly your previously started server crashed"
rm $SERVER_PIDNAME.pid
fi
fi
echo "Starting ${SERVER_NAME} server"
if [ -x "srcds_run" ]; then
"./${SERVER_DAEMON}" ${SERVER_PARAMS} > /dev/null &
echo $! > $SERVER_PIDNAME.pid
echo "server started"
else
echo "${SERVER_DAEMON} is not exectuable, cannot start server"
fi
;;
stop)
if [ -e $SERVER_PIDNAME.pid ]; then
echo "Stopping ${SERVER_NAME} server"
if ( kill -9 $(cat $SERVER_PIDNAME.pid) 2> /dev/null ); then
c=1
while [ "$c" -le 300 ]; do
if ( kill -9 $(cat $SERVER_PIDNAME.pid) 2> /dev/null ); then
echo -n "."
sleep 1
else
break
fi
c=$((++c))
done
fi
if ( kill -0 $(cat $SERVER_PIDNAME.pid) 2> /dev/null ); then
echo "Server is not shutting down cleanly - killing"
kill -KILL $(cat $SERVER_PIDNAME.pid)
else
echo -n "done"
fi
rm $SERVER_PIDNAME.pid
else
echo "No server running (${SERVER_PIDNAME}.pid is missing)"
exit 7
fi
;;
restart)
$0 stop && $0 start || exit 1
;;
status)
if [ -e $SERVER_PIDNAME.pid ]; then
if ( kill -0 $(cat $SERVER_PIDNAME.pid) 2> /dev/null ); then
echo "Server is running"
else
echo "Server seems to have died"
fi
else
echo "No server running (${SERVER_PIDNAME}.pid is missing)"
fi
;;
*)
echo "Usage: ${0} {start|stop|restart|status}"
exit 2
esac
exit 0
что нужно сделать? чтобы он поднимался? хотя бы через 2-3 минуты, если не отвечает
создать какой то screen или еще что-то ...
Подскажите пожалуйста, можно ли обойтись кодом лишь в одном start.sh ?
если можно, выложите пожалуйста исправный вариант...
*** з.ы. Максимально доступным языком
потому что я практически 0 в линуксе на данный момент