statsd histogram to support more than 1 second
[collectd.git] / contrib / redhat / init.d-collectd
1 #!/bin/bash
2 #
3 # collectd    Startup script for the Collectd statistics gathering daemon
4 # chkconfig: - 99 01
5 # description: Collectd is a statistics gathering daemon used to collect \
6 #   system information ie. cpu, memory, disk, network
7 # processname: collectd
8 # config: /etc/collectd.conf
9 # config: /etc/sysconfig/collectd
10 # pidfile: /var/run/collectd.pid
11
12 # Source function library.
13 . /etc/init.d/functions
14
15 RETVAL=0
16 ARGS=""
17 prog="collectdmon"
18 service="collectd"
19 CONFIG=/etc/collectd.conf
20 COLLECTD=/usr/sbin/collectd
21 COLLECTDMONPIDDIR="/var/run"
22 COLLECTDMONPID="$COLLECTDMONPIDDIR/collectdmon.pid"
23
24 MAXWAIT=30
25
26 if [ -r /etc/sysconfig/$service ]; then
27         . /etc/sysconfig/$service
28 fi
29
30 if [[ ! -d $COLLECTDMONPIDDIR ]]; then
31         mkdir -p $COLLECTDMONPIDDIR
32         [ -n "${RUNAS}" ] && chown "${RUNAS}:" "$COLLECTDMONPIDDIR"
33 fi
34
35 check_config() {
36         if test ! -r "$CONFIG"; then
37                 return 2
38         fi
39         if ! $COLLECTD -t -C "$CONFIG"; then
40                 return 1
41         fi
42         return 0
43 }
44
45
46 start () {
47         echo -n $"Starting collectd: "
48         check_config
49         rc="$?"
50         if test "$rc" -ne 0; then
51                 RETVAL=6
52                 echo $"not starting due to configuration error"
53                 failure $"not starting $service due to configuration error"
54         else
55                 daemon --user "${RUNAS:-root}" $prog -P $COLLECTDMONPID -c $COLLECTD -- -C "$CONFIG" $ARGS
56                 RETVAL=$?
57                 echo
58                 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$service
59         fi
60 }
61 stop () {
62         echo -n $"Stopping collectd: "
63         killproc -p $COLLECTDMONPID -d $MAXWAIT $prog
64         RETVAL=$?
65         echo
66         [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$service
67 }
68 # See how we were called.
69 case "$1" in
70   start)
71         start
72         ;;
73   stop)
74         stop
75         ;;
76   status)
77         status -p $COLLECTDMONPID $prog
78         ;;
79   restart|reload)
80         check_config
81         rc="$?"
82         if test "$rc" -ne 0; then
83                 RETVAL=6
84                 echo $"not restarting due to configuration error"
85                 failure $"not restarting $service due to configuration error"
86         else
87                 stop
88                 start
89         fi
90         ;;
91   condrestart)
92         [ -f /var/lock/subsys/$service ] && restart || :
93         ;;
94   *)
95         echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
96         exit 1
97 esac
98
99 exit $?
100
101 # vim:syntax=sh