[BACK]Return to ngircd.init CVS log [TXT][DIR] Up to [local] / ircnowd / contrib / Debian

Annotation of ircnowd/contrib/Debian/ngircd.init, Revision 1.1

1.1     ! tomglok     1: #!/bin/sh
        !             2: #
        !             3: # ngIRCd start and stop script for Debian-based systems
        !             4: # Copyright 2008-2015 Alexander Barton <alex@barton.de>
        !             5: #
        !             6:
        !             7: ### BEGIN INIT INFO
        !             8: # Provides:            ngircd
        !             9: # Required-Start:      $network $remote_fs
        !            10: # Required-Stop:       $network $remote_fs
        !            11: # Should-Start:                $syslog $named
        !            12: # Should-Stop:         $syslog
        !            13: # Default-Start:       2 3 4 5
        !            14: # Default-Stop:                0 1 6
        !            15: # Short-Description:   Next Generation IRC Server
        !            16: # Description:         IRC daemon written from scratch
        !            17: ### END INIT INFO
        !            18:
        !            19: PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
        !            20: DAEMON=/usr/sbin/ngircd
        !            21: NAME=ngIRCd
        !            22: DESC="IRC daemon"
        !            23: PARAMS=""
        !            24: STARTTIME=1
        !            25: DIETIME=10
        !            26:
        !            27: test -h "$0" && me=`readlink $0` || me="$0"
        !            28: BASENAME=`basename $me`
        !            29:
        !            30: test -r /etc/default/$BASENAME && . /etc/default/$BASENAME
        !            31:
        !            32: test -x $DAEMON || exit 5
        !            33:
        !            34: # LSB compatibility functions that become used if there is no local
        !            35: # include file available.
        !            36: log_daemon_msg() {
        !            37:        echo -n "$*"
        !            38: }
        !            39: log_end_msg() {
        !            40:        [ "$1" = "0" ] && echo "." || echo " failed!"
        !            41: }
        !            42: log_failure_msg() {
        !            43:        echo "$*"
        !            44: }
        !            45: log_warning_msg() {
        !            46:        log_failure_msg "$*"
        !            47: }
        !            48:
        !            49: # Include LSB functions, if available:
        !            50: test -r /lib/lsb/init-functions && . /lib/lsb/init-functions
        !            51:
        !            52: PIDFILE=`$DAEMON $PARAMS -t | tr -d ' ' | grep "^PidFile=" | cut -d'=' -f2`
        !            53: [ -n "$PIDFILE" ] || PIDFILE="/var/run/ircd/ngircd.pid"
        !            54:
        !            55: r=3
        !            56:
        !            57: Check_Config()
        !            58: {
        !            59:        # Make sure that the configuration of ngIRCd is valid:
        !            60:        $DAEMON $PARAMS --configtest >/dev/null 2>&1
        !            61:        [ $? -eq 0 ] && return 0
        !            62:        log_end_msg 1
        !            63:        log_failure_msg "Configuration of $NAME is not valid, won't (re)start!"
        !            64:        log_failure_msg "Run \"$DAEMON --configtest\" and fix it up ..."
        !            65:        exit 6
        !            66: }
        !            67:
        !            68: Prepare() {
        !            69:        # Make sure the PID file directory exists and is writable:
        !            70:        user=`$DAEMON $PARAMS -t|tr -d ' '|grep "^ServerUID="|cut -d'=' -f2`
        !            71:        group=`$DAEMON $PARAMS -t|tr -d ' '|grep "^ServerGID="|cut -d'=' -f2`
        !            72:        piddir=`dirname "$PIDFILE"`
        !            73:        [ -d "$piddir" ] || mkdir -p "$piddir" 2>/dev/null
        !            74:        chown "$user:$group" "$piddir" 2>/dev/null
        !            75:        [ $? -eq 0 ] && return 0
        !            76:        log_end_msg 1
        !            77:        log_failure_msg "Failed to prepare '$piddir' for user '$user'!"
        !            78:        exit 1
        !            79: }
        !            80:
        !            81: Do_Start() {
        !            82:        if Do_Status; then
        !            83:                log_end_msg 0
        !            84:                log_warning_msg "$NAME seems to be already running, nothing to do."
        !            85:                exit 0
        !            86:        fi
        !            87:        rm -f "$PIDFILE"
        !            88:        start-stop-daemon --start \
        !            89:                --quiet --exec $DAEMON -- $PARAMS
        !            90:        sleep $STARTTIME
        !            91:        Do_Status || return 7
        !            92:        return 0
        !            93: }
        !            94:
        !            95: Do_Stop() {
        !            96:        if ! Do_Status; then
        !            97:                log_end_msg 0
        !            98:                log_warning_msg "$NAME seems not to be running, nothing to do."
        !            99:                exit 0
        !           100:        fi
        !           101:        Do_ForceStop
        !           102:        return $?
        !           103: }
        !           104:
        !           105: Do_ForceStop() {
        !           106:        [ -e $PIDFILE ] \
        !           107:                && pidfile="--pidfile $PIDFILE" \
        !           108:                || pidfile=""
        !           109:        start-stop-daemon --stop \
        !           110:                --quiet --oknodo --exec $DAEMON $pidfile
        !           111:        for i in `seq 1 $DIETIME`; do
        !           112:                Do_Status || return 0
        !           113:                sleep 1
        !           114:        done
        !           115:        return 1
        !           116: }
        !           117:
        !           118: Do_Reload() {
        !           119:        start-stop-daemon --stop --signal 1 --quiet --exec $DAEMON
        !           120:        return $?
        !           121: }
        !           122:
        !           123: Do_Status() {
        !           124:        [ -e $PIDFILE ] \
        !           125:                && pidfile="--pidfile $PIDFILE" \
        !           126:                || pidfile=""
        !           127:        start-stop-daemon --stop \
        !           128:                --quiet --signal 0 --exec $DAEMON $pidfile >/dev/null
        !           129:        return $?
        !           130: }
        !           131:
        !           132: case "$1" in
        !           133:   start)
        !           134:        log_daemon_msg "Starting $DESC" "$NAME"
        !           135:        Check_Config
        !           136:        Prepare
        !           137:        Do_Start; r=$?
        !           138:        log_end_msg $r
        !           139:        ;;
        !           140:   stop)
        !           141:        log_daemon_msg "Stopping $DESC" "$NAME"
        !           142:        Do_Stop; r=$?
        !           143:        log_end_msg $r
        !           144:        ;;
        !           145:   reload|force-reload)
        !           146:        log_daemon_msg "Reloading $DESC" "$NAME"
        !           147:        Check_Config
        !           148:        Do_Reload; r=$?
        !           149:        log_end_msg $r
        !           150:        ;;
        !           151:   restart)
        !           152:        log_daemon_msg "Restarting $DESC" "$NAME"
        !           153:        Check_Config
        !           154:        Prepare
        !           155:        Do_ForceStop
        !           156:        Do_Start; r=$?
        !           157:        log_end_msg $r
        !           158:        ;;
        !           159:   status)
        !           160:        log_daemon_msg "Checking for $DESC" "$NAME"
        !           161:        Do_Status; r=$?
        !           162:        log_end_msg $r
        !           163:        ;;
        !           164:   test)
        !           165:        Check_Config
        !           166:        echo "Configuration of $DAEMON seems to be ok."; r=0
        !           167:        ;;
        !           168:   *)
        !           169:        N=/etc/init.d/$NAME; r=2
        !           170:        echo "Usage: $N {start|stop|restart|reload|force-reload|status|test}" >&2
        !           171:        ;;
        !           172: esac
        !           173:
        !           174: exit $r
        !           175:
        !           176: # -eof-

CVSweb