Postbote

Server Startscript

Jan 9th, 2012
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.82 KB | None | 0 0
  1. BINARYNAME="cod_lnxded"
  2. case "$1" in
  3.     start)
  4.         if [ -e screen.pid ]; then
  5.             if ( kill -0 $(cat screen.pid) 2> /dev/null ); then
  6.                 echo "The server is already running, try restart or stop"
  7.                 exit 1
  8.             else
  9.                 echo "screen.pid found, but no server running. Possibly your previously started server crashed"
  10.                 echo "Please view the logfile for details."
  11.                 rm screen.pid
  12.             fi
  13.         fi
  14.         if [ "${UID}" = "0" ]; then
  15.             echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
  16.             c=1
  17.             while [ "$c" -le 10 ]; do
  18.                 echo -n "!"
  19.                 sleep 1
  20.                 c=$((++c))
  21.             done
  22.             echo "!"
  23.         fi
  24.         echo "Starting the Call of Duty 1 server"
  25.     screen -dmS ${BINARYNAME} ./${BINARYNAME} +exec server.cfg +map mp_pavlov
  26.     sleep 2
  27.     screen -list | grep "${BINARYNAME}" | cut -f1 -d'.' | sed 's/\W//g' > ./screen.pid
  28.     ;;
  29.     stop)
  30.         if [ -e screen.pid ]; then
  31.             echo -n "Stopping the Call of Duty 1 server"
  32.             if ( kill -TERM $(cat screen.pid) 2> /dev/null ); then
  33.                 c=1
  34.                 while [ "$c" -le 300 ]; do
  35.                     if ( kill -0 $(cat screen.pid) 2> /dev/null ); then
  36.                         echo -n "."
  37.                         sleep 1
  38.                     else
  39.                         break
  40.                     fi
  41.                     c=$((++c))
  42.                 done
  43.             fi
  44.             if ( kill -0 $(cat screen.pid) 2> /dev/null ); then
  45.                 echo "Server is not shutting down cleanly - killing"
  46.                 kill -KILL $(cat screen.pid)
  47.             else
  48.                 echo "done"
  49.             fi
  50.             rm screen.pid
  51.         else
  52.             echo "No server running (screen.pid is missing)"
  53.             exit 7
  54.         fi
  55.     ;;
  56.     restart)
  57.         $0 stop && $0 start || exit 1
  58.     ;;
  59.     status)
  60.         if [ -e screen.pid ]; then
  61.             if ( kill -0 $(cat screen.pid) 2> /dev/null ); then
  62.                 echo "Server is running"
  63.             else
  64.                 echo "Server seems to have died"
  65.             fi
  66.         else
  67.             echo "No server running (screen.pid is missing)"
  68.         fi
  69.     ;;
  70.     *)
  71.         echo "Usage: ${0} {start|stop|restart|status}"
  72.         exit 2
  73. esac
  74. exit 0
Advertisement
Add Comment
Please, Sign In to add comment