#!/bin/bash . /lib/lsb/init-functions GAME_DIR=/srv/games/RVS NAME_OF_THE_GAME="Ravenshield" CHUSER=games CHGROUP=games SHELL=/usr/bin/wine NAME_OF_THE_GAME_INSTANCE="$NAME_OF_THE_GAME($2)" GAME_EXECUTABLES_DIR=$GAME_DIR/System GAME_EXECUTABLE_FILENAME=UCC.exe GAME_EXECUTABLE_FULLPATH=$GAME_EXECUTABLES_DIR/$GAME_EXECUTABLE_FILENAME PROFILES=/etc/uccl/profiles TEMPLATEPROFILES=$PROFILES/templates SERVERPROFILES=$PROFILES/game-servers LOGFILE=/dev/null RUNDIR=/var/run PIDDIR=$RUNDIR/ucc-servers PIDFILE=$PIDDIR/$2.pid STARTER="$SHELL $GAME_EXECUTABLE_FULLPATH" EXTRA_OPTS="server servercfg=$SERVERPROFILES/$2.ini" #> $LOGFILE 2>&1 ## FOR DEBUGGING SCRIPT echo 'Exccutables dir:' $GAME_EXECUTABLES_DIR echo 'Exccutable filename:' $GAME_EXECUTABLE_FILENAME echo 'Executable fullpath:' $GAME_EXECUTABLE_FULLPATH echo 'Starter:' $STARTER echo 'PID dir:' $PIDDIR echo 'PID file:' $PIDFILE echo check_pid_dir() { if [ -d "$PIDDIR" ]; then false else mkdir $PIDDIR && chown $CHUSER:$CHGROUP $PIDDIR fi } start() { start-stop-daemon --start --quiet --pidfile $PIDFILE --background --chdir $GAME_EXECUTABLES_DIR --chuid $CHUSER:$CHGROUP --name $GAME_EXECUTABLE_FILENAME --startas $STARTER -- $EXTRA_OPTS } debug() { start-stop-daemon --start --verbose --chdir $GAME_EXECUTABLES_DIR --name $GAME_EXECUTABLE_FILENAME --startas $STARTER -- $EXTRA_OPTS } stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE --name $GAME_EXECUTABLE_FILENAME } case "$1" in start) log_daemon_msg "Starting game server" $NAME_OF_THE_GAME_INSTANCE check_pid_dir start log_end_msg $? ;; debug) log_daemon_msg "Starting game server in debug mode" $NAME_OF_THE_GAME_INSTANCE echo echo debug log_end_msg $? ;; stop) log_daemon_msg "Stopping game server" $NAME_OF_THE_GAME_INSTANCE stop log_end_msg $? ;; restart) log_daemon_msg "Restarting game server" $NAME_OF_THE_GAME_INSTANCE stop start $RVSEXECUTABLES/ucc.exe server serverini=$SERVERPROFILES/$2.ini > $LOGFILE 2>&1 -- $LSBNAMES $EXTRA_OPTS log_end_msg $? ;; status) log_action_begin_msg "Checking $NAME_OF_THE_GAME game server" if pidofproc -p "$PIDFILE" >/dev/null; then log_action_end_msg 0 "running" exit 0 else if [ -e "$PIDFILE" ]; then log_action_end_msg 1 "failed to start" exit 1 else log_action_end_msg 0 "not running" exit 3 fi fi ;; *) log_action_msg "Usage: /etc/init.d/cron {start|stop|status|restart} {ServerProfile}" exit 2 ;; esac exit 0