+++ /dev/null
-#!/bin/sh
-#
-# ngIRCd start and stop script for Debian-based systems
-# Copyright 2008,2009 Alexander Barton <alex@barton.de>
-#
-
-### BEGIN INIT INFO
-# Provides: ngircd
-# Required-Start: $network $remote_fs
-# Required-Stop:
-# Should-Start: $syslog $named
-# Should-Stop: $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Next Generation IRC Server
-# Description: IRC daemon written from scratch
-### END INIT INFO
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/sbin/ngircd
-NAME=ngIRCd
-DESC="IRC daemon"
-PARAMS=""
-STARTTIME=1
-DIETIME=10
-
-test -x $DAEMON || exit 5
-
-test -h "$0" && me=`readlink $0` || me="$0"
-BASENAME=`basename $me`
-
-test -r /etc/default/$BASENAME && . /etc/default/$BASENAME
-
-# LSB compatibility functions that become used if there is no local
-# include file available.
-log_daemon_msg() {
- echo -n "$*"
-}
-log_end_msg() {
- [ "$1" == "0" ] && echo "." || echo " failed!"
-}
-log_failure_msg() {
- echo "$*"
-}
-log_warning_msg() {
- log_failure_msg "$*"
-}
-
-# Include LSB functions, if available:
-test -r /lib/lsb/init-functions && . /lib/lsb/init-functions
-
-PIDFILE=`$DAEMON $PARAMS -t | tr -d ' ' | grep "^PidFile=" | cut -d'=' -f2`
-[ -n "$PIDFILE" ] || PIDFILE="/var/run/ircd/ngircd.pid"
-
-r=3
-
-Check_Config()
-{
- # Make sure that the configuration of ngIRCd is valid:
- $DAEMON $PARAMS --configtest >/dev/null 2>&1
- [ $? -eq 0 ] && return 0
- log_end_msg 1
- log_failure_msg "Configuration of $NAME is not valid, won't (re)start!"
- log_failure_msg "Run \"$DAEMON --configtest\" and fix it up ..."
- exit 6
-}
-
-Prepare() {
- # Make sure the PID file directory exists and is writable:
- user=`$DAEMON $PARAMS -t|tr -d ' '|grep "^ServerUID="|cut -d'=' -f2`
- group=`$DAEMON $PARAMS -t|tr -d ' '|grep "^ServerGID="|cut -d'=' -f2`
- piddir=`dirname "$PIDFILE"`
- [ -d "$piddir" ] || mkdir -p "$piddir" 2>/dev/null
- chown "$user:$group" "$piddir" 2>/dev/null
- [ $? -eq 0 ] && return 0
- log_end_msg 1
- log_failure_msg "Failed to prepare '$piddir' for user '$user'!"
- exit 1
-}
-
-Do_Start() {
- if Do_Status; then
- log_end_msg 0
- log_warning_msg "$NAME seems to be already running, nothing to do."
- exit 0
- fi
- start-stop-daemon --start \
- --quiet --exec $DAEMON -- $PARAMS
- sleep $STARTTIME
- Do_Status || return 7
- return 0
-}
-
-Do_Stop() {
- if ! Do_Status; then
- log_end_msg 0
- log_warning_msg "$NAME seems not to be running, nothing to do."
- exit 0
- fi
- Do_ForceStop
- return $?
-}
-
-Do_ForceStop() {
- [ -e $PIDFILE ] \
- && pidfile="--pidfile $PIDFILE" \
- || pidfile=""
- start-stop-daemon --stop \
- --quiet --oknodo --exec $DAEMON $pidfile
- for i in `seq 1 $DIETIME`; do
- Do_Status || return 0
- sleep 1
- done
- return 1
-}
-
-Do_Reload() {
- start-stop-daemon --stop --signal 1 --quiet --exec $DAEMON
- return $?
-}
-
-Do_Status() {
- [ -e $PIDFILE ] \
- && pidfile="--pidfile $PIDFILE" \
- || pidfile=""
- start-stop-daemon --stop \
- --quiet --signal 0 --exec $DAEMON $pidfile >/dev/null
- return $?
-}
-
-case "$1" in
- start)
- log_daemon_msg "Starting $DESC" "$NAME"
- Check_Config
- Prepare
- Do_Start; r=$?
- log_end_msg $r
- ;;
- stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
- Do_Stop; r=$?
- log_end_msg $r
- ;;
- reload|force-reload)
- log_daemon_msg "Reloading $DESC" "$NAME"
- Check_Config
- Do_Reload; r=$?
- log_end_msg $r
- ;;
- restart)
- log_daemon_msg "Restarting $DESC" "$NAME"
- Check_Config
- Prepare
- Do_ForceStop
- Do_Start; r=$?
- log_end_msg $r
- ;;
- status)
- log_daemon_msg "Checking for $DESC" "$NAME"
- Do_Status; r=$?
- log_end_msg $r
- ;;
- test)
- Check_Config
- echo "Configuration of $DAEMON seems to be ok."; r=0
- ;;
- *)
- N=/etc/init.d/$NAME; r=2
- echo "Usage: $N {start|stop|restart|reload|force-reload|status|test}" >&2
- ;;
-esac
-
-exit $r
-
-# -eof-