Jump to content

thermionix

Members
  • Posts

    1
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by thermionix

  1. Quickly whipped this up (currently setting up mangos on ubuntu, albeit slowly)

    Anyone want to review it? (I'll update this post)

    Possible area's of improvement -

    security in this script? path?

    Provide 'status' option.

    Cleanup variables / overall script

    #!/bin/sh

    ### BEGIN INIT INFO

    # Provides: mangosd

    # Required-Start: $network $local_fs

    # Required-Stop: $network $local_fs

    # Default-Start: 2 3 4 5

    # Default-Stop: 0 1 6

    # Short-Description: Daemonized version of mangos wow server.

    # Description: Daemon for mangosd and realmd processes.

    ### END INIT INFO

    # installing this init;

    #sudo chmod 755 /etc/init.d/mangosd

    #sudo update-rc.d mangosd defaults

    #sudo invoke-rc.d mangosd start

    DAEMON_USER="mangouser" # !!!CHANGE THIS!!!!

    RUN_AT_STARTUP="YES"

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/mangos/bin

    DESC="Mangos Daemon"

    NAME1="mangos-realmd"

    NAME2="mangos-worldd"

    DAEMON1=/opt/mangos/bin/mangos-realmd

    DAEMON2=/opt/mangos/bin/mangos-worldd

    PIDFILE1=/var/run/$NAME1.pid

    PIDFILE2=/var/run/$NAME2.pid

    UMASK=022 # Change this to 0 if running daemon as its own user

    PKGNAME=mangosd

    SCRIPTNAME=/etc/init.d/$PKGNAME

    # Exit if the package is not installed

    [ -x "$DAEMON1" -a -x "$DAEMON2" ] || exit 0

    # Load the VERBOSE setting and other rcS variables

    [ -f /etc/default/rcS ] && . /etc/default/rcS

    # Define LSB log_* functions.

    # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.

    . /lib/lsb/init-functions

    if [ -z "$RUN_AT_STARTUP" -o "$RUN_AT_STARTUP" != "YES" ]

    then

    log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it."

    exit 0

    fi

    if [ -z "$DAEMON_USER" ]

    then

    log_warning_msg "Not starting $PKGNAME, DAEMON_USER not set."

    exit 0

    fi

    #

    # Function that starts the daemon/service

    #

    do_start()

    {

    # Return

    # 0 if daemon has been started

    # 1 if daemon was already running

    # 2 if daemon could not be started

    start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \\

    --chuid $DAEMON_USER --user $DAEMON_USER --umask $UMASK --test > /dev/null

    RETVAL1="$?"

    start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \\

    --chuid $DAEMON_USER --user $DAEMON_USER --umask $UMASK --test > /dev/null

    RETVAL2="$?"

    [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 1

    start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \\

    --chuid $DAEMON_USER --user $DAEMON_USER --umask $UMASK

    RETVAL1="$?"

    sleep 2

    start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \\

    --chuid $DAEMON_USER --user $DAEMON_USER --umask $UMASK

    RETVAL2="$?"

    [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || 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/30/KILL/5 --user $DAEMON_USER --pidfile $PIDFILE2

    RETVAL2="$?"

    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DAEMON_USER --pidfile $PIDFILE1

    RETVAL1="$?"

    [ "$RETVAL1" = "2" -o "$RETVAL2" = "2" ] && return 2

    rm -f $PIDFILE1 $PIDFILE2

    [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] && return 0 || return 1

    }

    case "$1" in

    start)

    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME1"

    do_start

    case "$?" in

    0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;

    2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;

    esac

    ;;

    stop)

    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME1"

    do_stop

    case "$?" in

    0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;

    2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;

    esac

    ;;

    restart|force-reload)

    log_daemon_msg "Restarting $DESC" "$NAME1"

    do_stop

    case "$?" in

    0|1)

    do_start

    case "$?" in

    0) log_end_msg 0 ;;

    1) log_end_msg 1 ;; # Old process is still running

    *) log_end_msg 1 ;; # Failed to start

    esac

    ;;

    *)

    # Failed to stop

    log_end_msg 1

    ;;

    esac

    ;;

    *)

    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2

    exit 3

    ;;

    esac

    :

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use