Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BINARYNAME="cod_lnxded"
- case "$1" in
- start)
- if [ -e screen.pid ]; then
- if ( kill -0 $(cat screen.pid) 2> /dev/null ); then
- echo "The server is already running, try restart or stop"
- exit 1
- else
- echo "screen.pid found, but no server running. Possibly your previously started server crashed"
- echo "Please view the logfile for details."
- rm screen.pid
- fi
- fi
- if [ "${UID}" = "0" ]; then
- echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
- c=1
- while [ "$c" -le 10 ]; do
- echo -n "!"
- sleep 1
- c=$((++c))
- done
- echo "!"
- fi
- echo "Starting the Call of Duty 1 server"
- screen -dmS ${BINARYNAME} ./${BINARYNAME} +exec server.cfg +map mp_pavlov
- sleep 2
- screen -list | grep "${BINARYNAME}" | cut -f1 -d'.' | sed 's/\W//g' > ./screen.pid
- ;;
- stop)
- if [ -e screen.pid ]; then
- echo -n "Stopping the Call of Duty 1 server"
- if ( kill -TERM $(cat screen.pid) 2> /dev/null ); then
- c=1
- while [ "$c" -le 300 ]; do
- if ( kill -0 $(cat screen.pid) 2> /dev/null ); then
- echo -n "."
- sleep 1
- else
- break
- fi
- c=$((++c))
- done
- fi
- if ( kill -0 $(cat screen.pid) 2> /dev/null ); then
- echo "Server is not shutting down cleanly - killing"
- kill -KILL $(cat screen.pid)
- else
- echo "done"
- fi
- rm screen.pid
- else
- echo "No server running (screen.pid is missing)"
- exit 7
- fi
- ;;
- restart)
- $0 stop && $0 start || exit 1
- ;;
- status)
- if [ -e screen.pid ]; then
- if ( kill -0 $(cat screen.pid) 2> /dev/null ); then
- echo "Server is running"
- else
- echo "Server seems to have died"
- fi
- else
- echo "No server running (screen.pid is missing)"
- fi
- ;;
- *)
- echo "Usage: ${0} {start|stop|restart|status}"
- exit 2
- esac
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment