Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/sh
- ### BEGIN INIT INFO
- # Provides: tc-daemon
- # Required-Start: networking
- # Required-Stop: networking
- # Default-Start: 2 3 5
- # Default-Stop: 0 1 6
- # Short-Description: Start the trinity core daemon.
- ### END INIT INFO
- # Author: Rob Howell's script
- # Do NOT "set -e"
- # ----- CONFIGURATION -----
- # The name of the user that should run Trinity Core.
- USERNAME=USERNAME
- # The folder where the worldserver and authserver startup scripts are stored.
- TRINITY_HOME="/PATH/TRINTY/BIN/"
- # The arguments passed on to Trinity-daemon.
- #TRINITY_ARGS=""
- # ----- END OF CONFIGURATION -----
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- DESC="trinitycore"
- NAME1=tcworld-daemon
- NAME2=tcauth-daemon
- DAEMON1=worldserver
- DAEMON2=authserver
- PIDFILE1=/var/run/$NAME1.pid
- PIDFILE2=/var/run/$NAME2.pid
- SCRIPTNAME=/etc/init.d/$NAME
- # Exit if the package is not installed
- [ -x "$DAEMON1" ] || exit 0
- # Exit if the package is not installed
- [ -x "$DAEMON2" ] || exit 0
- #
- # Function that starts the daemon/service
- #
- do_start()
- {
- # Export the Trinity Home directory, if set
- if [ -n "$TRINITY_HOME" ]; then
- export TRINITY_HOME
- fi
- # Return
- # 0 if daemon has been started
- # 1 if daemon was already running
- # 2 if daemon could not be started
- start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE1 --make-pidfile \
- --exec $DAEMON1 --background --test -- -f $TRINITY_ARGS > /dev/null \
- || return 1
- start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE2 --make-pidfile \
- --exec $DAEMON2 --background --test -- -f $TRINITY_ARGS > /dev/null \
- || return 1
- start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE1 --make-pidfile \
- --exec $DAEMON1--background -- -f $TRINITY_ARGS \
- || return 2
- start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE2 --make-pidfile \
- --exec $DAEMON2--background -- -f $TRINITY_ARGS \
- || return 2
- }
- #
- # Function that stops the daemon/service
- #
- do_stop()
- {
- # Return
- # 0 if daemon has been stopped
- # 1 if daemon was already stopped
- # 2 if daemon could not be stopped
- # other if a failure occurred
- start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE1 --exec $DAEMON1
- RETVAL="$?"
- [ "$RETVAL" = 2 ] && return 2
- start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE2 --exec $DAEMON2
- RETVAL="$?"
- [ "$RETVAL" = 2 ] && return 2
- # Wait for children to finish too if this is a daemon that forks
- # and if the daemon is only ever run from this initscript.
- # If the above conditions are not satisfied then add some other code
- # that waits for the process to drop all resources that could be
- # needed by services started subsequently. A last resort is to
- # sleep for some time.
- start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON2
- [ "$?" = 2 ] && return 2
- start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON2
- [ "$?" = 2 ] && return 2
- # Many daemons don't delete their pidfiles when they exit.
- rm -f $PIDFILE1
- rm -f $PIDFILE2
- return "$RETVAL"
- }
- case "$1" in
- start)
- echo "Starting $DESC" "$NAME..."
- do_start
- case "$?" in
- 0|1) echo " Starting $DESC $NAME succeeded" ;;
- *) echo " Starting $DESC $NAME failed" ;;
- esac
- ;;
- stop)
- echo "Stopping $DESC $NAME..."
- do_stop
- case "$?" in
- 0|1) echo " Stopping $DESC $NAME succeeded" ;;
- *) echo " Stopping $DESC $NAME failed" ;;
- esac
- ;;
- restart|force-reload)
- #
- # If the "reload" option is implemented then remove the
- # 'force-reload' alias
- #
- echo "Restarting $DESC $NAME..."
- do_stop
- case "$?" in
- 0|1)
- do_start
- case "$?" in
- 0|1) echo " Restarting $DESC $NAME succeeded" ;;
- *) echo " Restarting $DESC $NAME failed: couldn't start $NAME" ;;
- esac
- ;;
- *)
- echo " Restarting $DESC $NAME failed: couldn't stop $NAME" ;;
- esac
- ;;
- *)
- echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
- exit 3
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement