Added simple support to configure and run multiple instances of collectd to
[collectd.git] / debian / collectd.init.d
1 #!/bin/sh
2 #
3 # collectd      Initscript for collectd
4 #               http://verplant.org/collectd/
5 # Author:       Florian Forster <octo@verplant.org>
6 # Extended to support multiple running instances of collectd:
7 #               Sebastian Harl <sh@tokkee.org>
8 #
9
10 set -e
11
12 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
13 DESC="Statistics collection daemon"
14 NAME=collectd
15 DAEMON=/usr/sbin/$NAME
16 SCRIPTNAME=/etc/init.d/$NAME
17 ARGS=""
18
19 CONFIGDIR=/etc/collectd
20 # for backward compatibility
21 FALLBACKCONF=/etc/collectd.conf
22
23 # Gracefully exit if the package has been removed.
24 test -x $DAEMON || exit 0
25
26 if [ -r /etc/default/$NAME ]
27 then
28         . /etc/default/$NAME
29 fi
30
31 #
32 #       Function that starts the daemon/service.
33 #
34 d_start() {
35         i=1
36         
37         if [[ ! -d "$CONFIGDIR" && -e "$FALLBACKCONF" ]]
38         then
39                 start-stop-daemon --start --quiet --exec $DAEMON \
40                         -- -C "$FALLBACKCONF"
41         else
42                 echo -n " ("
43                 for CONFIG in `cd $CONFIGDIR; ls *.conf 2> /dev/null`; do
44                         CONF="$CONFIGDIR/$CONFIG"
45                         NAME=${CONFIG%%.conf}
46                         PIDFILE=$( grep PIDFile $CONF | awk '{print $2}' )
47
48                         if [ 1 != $i ]; then
49                                 echo -n " "
50                         fi
51
52                         start-stop-daemon --start --quiet \
53                                 --pidfile $PIDFILE --startas $DAEMON \
54                                 -- -C "$CONFIGDIR/$CONFIG"
55                         echo -n "$NAME"
56
57                         let i++
58                 done
59                 echo -n ")"
60         fi
61 }
62
63 #
64 #       Function that stops the daemon/service.
65 #
66 d_stop() {
67         start-stop-daemon --stop --quiet --exec $DAEMON
68 }
69
70 case "$1" in
71   start)
72         echo -n "Starting $DESC: $NAME"
73         d_start
74         echo "."
75         ;;
76   stop)
77         echo -n "Stopping $DESC: $NAME"
78         d_stop
79         echo "."
80         ;;
81   restart|force-reload)
82         echo -n "Restarting $DESC: $NAME"
83         d_stop
84         sleep 1
85         d_start
86         echo "."
87         ;;
88   *)
89         echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
90         exit 1
91         ;;
92 esac
93
94 exit 0
95
96 # vim:syntax=sh