#!/bin/sh # # Starts TM2 script # # chkconfig: 345 97 03 # description: TM2 is the TrackMania 2 Canyon server # # Author: Frans P. de Vries MYDESC="TrackMania 2 Canyon server" MYUSER=tm2 MYPATH=/home/$MYUSER/TM2 MYNAME=`basename $0 | sed 's/^[SK][0-9][0-9]//'` DAEMON=$MYPATH/RunTrackmania2C.sh MYPROC=$MYPATH/ManiaPlanetServer MYPIDF=/var/run/$MYNAME.pid MYLOCK=/var/lock/subsys/$MYNAME # Source function library. . /etc/rc.d/init.d/functions # Make sure the daemon directory is in the front of the path list PATH=$MYPATH:$PATH # See how we were called. case "$1" in start) # Change to package directory so config paths can be relative cd $MYPATH || \ { echo "$0: Can't cd to $MYPATH" ; exit 1 ; } # Make sure the daemon exists [ -f $DAEMON ] || \ { echo "$0: Daemon not found: $DAEMON" ; exit 1 ; } # See if we are already running # Note: kill -0 _PID_ # returns true if process _PID_ is alive and accepting signals. [ -f $MYPIDF ] && kill -0 `cat $MYPIDF` 2>/dev/null && \ { echo "$0: $MYPIDF exists and process is running" ; exit 1 ; } echo -n "Starting $MYDESC: " echo "$MYNAME " su -l -c "$DAEMON" $MYUSER | tee $MYPIDF PID=`sed -n 's~.*with pid=\([0-9][0-9]*\).*~\1~;/^[0-9]*$/p' $MYPIDF` echo $PID > $MYPIDF chown $MYUSER.tm $MYPIDF touch $MYLOCK ;; stop) echo -n "Shutting down $MYDESC: " echo -n "$MYNAME " killproc $MYNAME rm -f $MYPIDF echo rm -f $MYLOCK ;; status) pid=`pidof -o $$ -o $PPID -o %PPID -x $MYPROC` if [ -n "$pid" ]; then echo "$MYNAME (pid $pid) is running..." exit 0 fi status $MYNAME ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|status|restart}" exit 1 esac exit 0