]> arthur.barton.de Git - ngircd-alex.git/blob - contrib/Debian/ngircd.init
Debian: make sure that /var/run/ircd is owned by user "irc".
[ngircd-alex.git] / contrib / Debian / ngircd.init
1 #!/bin/sh
2 #
3 # ngIRCd start and stop script for Debian-based systems
4 # Copyright 2008 Alexander Barton <alex@barton.de>
5 #
6
7 ### BEGIN INIT INFO
8 # Provides:             ircd
9 # Required-Start:       $remote_fs
10 # Required-Stop:        $remote_fs
11 # Should-Start:         $syslog
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 ### END INIT INFO
17
18 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
19 DAEMON=/usr/sbin/ngircd
20 NAME=ngIRCd
21 DESC="IRC daemon"
22 PARAMS=""
23
24 test -h "$0" && me=`readlink $0` || me="$0"
25 BASENAME=`basename $me`
26
27 test -r /etc/default/$BASENAME && . /etc/default/$BASENAME
28
29 test -x $DAEMON || exit 0
30
31 # LSB compatibility functions that become used if there is no local
32 # include file available.
33 log_daemon_msg() {
34         echo -n "$*"
35 }
36 log_end_msg() {
37         [ "$1" == "0" ] && echo "." || echo " failed!"
38 }
39 log_failure_msg() {
40         echo "$*"
41 }
42
43 # Include LSB functions, if available:
44 test -r /lib/lsb/init-functions && . /lib/lsb/init-functions
45
46 Check_Config()
47 {
48         # Make sure that the configuration of ngIRCd is valid:
49         $DAEMON --configtest >/dev/null 2>&1
50         if [ $? -ne 0 ]; then
51                 log_failure_msg "Configuration of $NAME is not valid, won't (re)start!"
52                 log_failure_msg "Run \"$DAEMON --configtest\" and fix it up ..."
53                 exit 1
54         fi
55         # Make sure the PID file directory exists and is writable:
56         if [ ! -d /var/run/ircd ]; then
57                 mkdir -p /var/run/ircd
58         fi
59         chown irc:irc /var/run/ircd
60 }
61
62 case "$1" in
63   start)
64         Check_Config
65         log_daemon_msg "Starting $DESC" "$NAME"
66         start-stop-daemon --start \
67                 --quiet --exec $DAEMON -- $PARAMS
68         log_end_msg $?
69         ;;
70   stop)
71         log_daemon_msg "Stopping $DESC" "$NAME"
72         [ -r /var/run/ircd/ngircd.pid ] \
73                 && PIDFILE="--pidfile /var/run/ircd/ngircd.pid" \
74                 || PIDFILE=""
75         start-stop-daemon --stop \
76                 --quiet --oknodo --exec $DAEMON $PIDFILE
77         log_end_msg $?
78         ;;
79   reload|force-reload)
80         Check_Config
81         log_daemon_msg "Reloading $DESC" "$NAME"
82         start-stop-daemon --stop --signal 1 --quiet --exec $DAEMON
83         log_end_msg $?
84         ;;
85   restart)
86         Check_Config
87         log_daemon_msg "Restarting $DESC" "$NAME"
88         [ -r /var/run/ircd/ngircd.pid ] \
89                 && PIDFILE="--pidfile /var/run/ircd/ngircd.pid" \
90                 || PIDFILE=""
91         start-stop-daemon --stop \
92                 --quiet --oknodo --exec $DAEMON $PIDFILE
93         sleep 1
94         start-stop-daemon --start \
95                 --quiet --exec $DAEMON -- $PARAMS
96         log_end_msg $?
97         ;;
98   *)
99         N=/etc/init.d/$NAME
100         echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
101         exit 1
102         ;;
103 esac
104
105 exit 0
106
107 # -eof-