Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # armaserver: ArmA 2 Linux Dedicated Server Control Script
- # (c) 2010 BIStudio
- # ArmA 2 binary version must be 1.04 or later
- #
- #=======================================================================
- #======== CONFIGURATION PARAMETERS ========
- #======== MUST BE EDITED MANUALLY TO FIT YOUR SYSTEM PARAMETERS ========
- #=======================================================================
- ARMA_DIR=/home/propslam/arma2
- CONFIG=server.cfg
- PORT=2302
- PIDFILE=${ARMA_DIR}/${PORT}.pid
- RUNFILE=${ARMA_DIR}/${PORT}.run
- LOGFILE=${ARMA_DIR}/log.${PORT}.txt
- SERVER=${ARMA_DIR}/server
- OTHERPARAMS="-cpucount=2 -mod=ca"
- #=======================================================================
- ulimit -c 1000000
- case "$1" in
- start)
- if [ -f ${RUNFILE} ]; then
- $0 stop
- fi
- echo "Starting ArmA 2 server..."
- # file to mark we want server running...
- echo "go" >${RUNFILE}
- # launch the background watchdog process to run the server
- nohup </dev/null >/dev/null $0 watchdog &
- ;;
- stop)
- echo "Stopping ArmA 2 server..."
- if [ -f ${RUNFILE} ]; then
- # ask watcher process to exit by deleting its runfile...
- rm -f ${RUNFILE}
- fi
- # and terminate ArmA 2 server process
- if [ -f ${PIDFILE} ]; then
- kill -TERM $(< ${PIDFILE})
- if [ -f ${PIDFILE} ]; then
- rm -f ${PIDFILE}
- fi
- fi
- ;;
- status)
- if [ -f ${RUNFILE} ]; then
- echo "Server should be running..."
- else
- echo "Server should not be running..."
- fi
- if [ -f ${PIDFILE} ]; then
- PID=$(< ${PIDFILE})
- echo "PID file exists (PID=${PID})..."
- if [ -f /proc/${PID}/cmdline ]; then
- echo "Server process seems to be running..."
- fi
- fi
- ;;
- check)
- echo -n "ArmA 2 directory: ${ARMA_DIR} "
- if [ -d ${ARMA_DIR} ]; then
- echo "OK"
- else
- echo "MISSING!"
- fi
- echo -n "Server executable: ${SERVER} "
- if [ -x ${SERVER} ]; then
- echo "OK"
- else
- echo "ERROR!"
- fi
- echo "Port number: ${PORT}"
- echo -n "Config file: ${CONFIG} "
- if [ -f ${CONFIG} ]; then
- echo "OK"
- else
- echo "MISSING!"
- fi
- echo "PID file: ${PIDFILE}"
- echo "RUN file: ${RUNFILE}"
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- watchdog)
- # this is a background watchdog process. Do not start directly
- while [ -f ${RUNFILE} ]; do
- # launch the server...
- cd ${ARMA_DIR}
- echo >>${LOGFILE} "WATCHDOG ($$): [$(date)] Starting server (port ${PORT})..."
- ${SERVER} >>${LOGFILE} 2>&1 -server -config=${CONFIG} -port=${PORT} -pid=${PIDFILE} ${OTHERPARAMS}
- if [ -f ${RUNFILE} ]; then
- echo >>${LOGFILE} "WATCHDOG ($$): [$(date)] Server died, waiting to restart..."
- sleep 5s
- else
- echo >>${LOGFILE} "WATCHDOG ($$): [$(date)] Server shutdown intentional, watchdog terminating"
- fi
- done
- ;;
- *)
- echo "$0 (start|stop|restart|status|check)"
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement