#!/bin/sh
#
# cyphesis This shell script takes care of starting and stopping
# the cyphesis service.
#
# chkconfig: - 90 10
# description: Cyphesis is a server for WorldForge online games.
# processname: cyphesis
if [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
fi
# Source cyphesis service configuration
if [ -f /etc/sysconfig/cyphesis ] ; then
. /etc/sysconfig/cyphesis
else
CYPHESISUSER=cyphesis
fi
POSTGRESUSER=postgres
start() {
# Start the daemon.
# Make sure postgres superuser exists
if ! su $POSTGRESUSER -c true >/dev/null 2>&1; then
echo
echo $"Could not check for running PostgreSQL database."
return 1
fi
# Make sure postgres is running
if ! su $POSTGRESUSER -c "psql -c \"\" template1" >/dev/null 2>&1; then
echo $"PostgreSQL server is not running."
return 1
fi
# Make sure the user we are going to run as exists
if ! su $CYPHESISUSER -c true >/dev/null 2>&1; then
echo $"Cannot find user $CYPHESISUSER to run cyphesis service."
return 1
fi
# Make sure the user has a postgres account
if ! su $CYPHESISUSER -c "psql -c \"\" template1" >/dev/null 2>&1; then
echo -n $"Creating PostgreSQL account: "
su $POSTGRESUSER -c "createuser -A -d -q -R $CYPHESISUSER" >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo_success
else
echo_failure
echo
return 1
fi
echo
fi
# Make sure the database exists
if ! su $CYPHESISUSER -c "psql -c \"\" cyphesis" >/dev/null 2>&1; then
# Create the database
echo -n $"Creating PostgreSQL database: "
su $CYPHESISUSER -c "createdb -q cyphesis" >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo_success
else
echo_failure
echo
return 1
fi
echo
# Populate it with rules
echo -n $"Loading database with rules: "
su $CYPHESISUSER -c "cyloadrules" >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo_success
else
echo_failure
echo
return 1
fi
echo
fi
echo -n $"Starting cyphesis: "
# Run the server, in self daemonising mode
su $CYPHESISUSER -c "/usr/bin/cyphesis --cyphesis:daemon=true" >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo_success
touch /var/lock/subsys/cyphesis
else
echo_failure
echo
fi
echo
return $RETVAL
}
stop() {
# Stop server
echo -n $"Shutting down cyphesis: "
killproc cyphesis
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/cyphesis
return $RETVAL
}
case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart|reload)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/cyphesis ]; then
stop
start
RETVAL=$?
fi
;;
status)
status cyphesis
RETVAL=$?
;;
*)
echo $"Usage: $0 (start|stop|restart|condrestart|status)"
exit 1
esac
exit $RETVAL
syntax highlighted by Code2HTML, v. 0.9.1