--- cyphesis-0.5.15/cyphesis.init.orig 2006-09-26 14:33:12.000000000 -0700 +++ cyphesis-0.5.15/cyphesis.init 2007-12-18 15:57:12.000000000 -0800 @@ -23,29 +23,35 @@ start() { # Start the daemon. + if selinuxenabled ; then + /usr/sbin/semanage port -a -t cyphesis_port_t -p tcp 6767 &>/dev/null || : + /usr/sbin/semanage port -a -t cyphesis_port_t -p tcp 6769 &>/dev/null || : + /usr/sbin/semanage port -a -t cyphesis_port_t -p udp 32771 &>/dev/null || : + fi + # Make sure postgres superuser exists - if ! su $POSTGRESUSER -c true >/dev/null 2>&1; then + if ! runuser $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 + if ! runuser $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 + if ! runuser $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 + if ! runuser $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 + runuser $POSTGRESUSER -c "createuser -A -d -q -R $CYPHESISUSER" >/dev/null 2>&1 RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success @@ -58,10 +64,10 @@ fi # Make sure the database exists - if ! su $CYPHESISUSER -c "psql -c \"\" cyphesis" >/dev/null 2>&1; then + if ! runuser $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 + runuser $CYPHESISUSER -c "createdb -q cyphesis" >/dev/null 2>&1 RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success @@ -73,7 +79,7 @@ echo # Populate it with rules echo -n $"Loading database with rules: " - su $CYPHESISUSER -c "cyloadrules" >/dev/null 2>&1 + runuser $CYPHESISUSER -c "cyloadrules" >/dev/null 2>&1 RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success @@ -88,7 +94,7 @@ echo -n $"Starting cyphesis: " # Run the server, in self daemonising mode - su $CYPHESISUSER -c "/usr/bin/cyphesis --cyphesis:daemon=true" >/dev/null 2>&1 + runuser $CYPHESISUSER -c "/usr/bin/cyphesis --cyphesis:daemon=true" >/dev/null 2>&1 RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success @@ -96,8 +102,24 @@ else echo_failure echo + return $RETVAL fi echo + + if [ "$POPULATE_WORLD" == "1" ] ; then + echo -n $"Populating cyphesis world: " + + # Populate the world with game data + runuser $CYPHESISUSER -c "/usr/bin/cyclient" >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + echo_success + else + echo_failure + fi + echo + fi + return $RETVAL } @@ -107,7 +129,13 @@ killproc cyphesis RETVAL=$? echo - [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/cyphesis + if [ $RETVAL -eq 0 ] ; then + rm -f /var/lock/subsys/cyphesis + /usr/sbin/semanage port -d -t cyphesis_port_t -p tcp 6767 &>/dev/null || : + /usr/sbin/semanage port -d -t cyphesis_port_t -p tcp 6769 &>/dev/null || : + /usr/sbin/semanage port -d -t cyphesis_port_t -p udp 32771 &>/dev/null || : + fi + return $RETVAL }