#!/bin/sh
#
# chkconfig: 345 98 03
-# description: Starts and stops the Crossfire server
+# description: Starts and stops the Crossfire server
#
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin
# Check that networking is up.
if is_yes "${NETWORKING}"; then
- if [ ! -f /var/lock/subsys/network ]; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
msg_network_down crossfire
exit 1
fi
TMPDIR="/tmp"; export TMPDIR
+RETVAL=0
case "$1" in
start)
if [ ! -f /var/lock/subsys/crossfire ]; then
cd /
FLAGS="-log /var/log/crossfire"
- if [ -n "$PORT" ] ; then
+ if [ -n "$PORT" ]; then
FLAGS="$FLAGS -csport $PORT"
fi
if is_yes "$DEBUG" ; then
FLAGS="$FLAGS +d"
fi
msg_starting crossfire
- daemon su games -c "\"exec crossfire -detach $FLAGS >>/var/log/crossfire 2>&1\""
+ daemon su games -s /bin/sh -c "\"exec crossfire -detach $FLAGS >>/var/log/crossfire 2>&1\""
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/crossfire
else
msg_already_running crossfire
- exit 1
fi
;;
stop)
rm -f /var/lock/subsys/crossfire >/dev/null 2>&1
else
msg_not_running crossfire
- exit 1
fi
;;
status)
status crossfire
+ RETVAL=$?
su games -c "crossfire +d -s"
- exit $?
;;
restart)
$0 stop
$0 start
+ RETVAL=$?
;;
- reload)
+ reload|force-reload)
if [ -f /var/lock/subsys/crossfire ]; then
msg_reloading crossfire
- busy
killproc crossfire
RETVAL=$?
- [ $RETVAL -eq 0 ] && ok || died
else
- msg_not_running crossfire
- exit 1
+ msg_not_running crossfire >&2
+ exit 7
fi
;;
*)
- msg_usage "$0 {start|stop|restart|reload|status}"
- exit 1
+ msg_usage "$0 {start|stop|restart|reload|force-reload|status}"
+ exit 3
esac
exit $RETVAL