Added some Should-Start / Should-Stop so that Ceilometer starts after Mongo and RabbitMQ.
[openstack-build/ceilometer-build.git] / trusty / debian / ceilometer-collector.init
1 #!/bin/sh
2 ### BEGIN INIT INFO
3 # Provides:          ceilometer-collector
4 # Required-Start:    $network $local_fs $remote_fs $syslog
5 # Required-Stop:     $remote_fs
6 # Should-Start:      mongodb rabbitmq-server
7 # Should-Stop:       mongodb rabbitmq-server
8 # Default-Start:     2 3 4 5
9 # Default-Stop:      0 1 6
10 # Short-Description: ceilometer collector
11 # Description:       ceilometer collector
12 ### END INIT INFO
13
14 # Author: Thomas Goirand <zigo@debian.org>
15 # License: Apache-2
16
17 PATH=/sbin:/usr/sbin:/bin:/usr/bin
18 DESC="Ceilometer Collector"
19 SYS_NAME=ceilometer
20 NAME=ceilometer-collector
21 DAEMON=/usr/bin/${NAME}
22
23 SCRIPTNAME=/etc/init.d/${NAME}
24 DAEMON_USER=${SYS_NAME}
25 DAEMON_GROUP=${SYS_NAME}
26 LOCK_DIR=/var/lock/${SYS_NAME}
27 PID_DIR=/var/run/${SYS_NAME}
28 PID_FILE=${PID_DIR}/${NAME}.pid
29 LOGFILE=/var/log/${SYS_NAME}/${NAME}.log 
30 DAEMON_ARGS="--config-file=/etc/${SYS_NAME}/ceilometer.conf --log-file=$LOGFILE"
31
32 [ -x $DAEMON ] || exit 0
33
34 for i in ${LOCK_DIR} ${PID_DIR} ; do
35         [ ! -d ${i} ] && mkdir -p ${i}
36         [ -d ${i} ] && chown ${DAEMON_USER}:${DAEMON_GROUP} ${i}
37 done
38
39 . /lib/lsb/init-functions
40
41 do_start() {
42         start-stop-daemon --start \
43                         --background --quiet \
44                         --chuid ${DAEMON_USER}:${DAEMON_GROUP} \
45                         --make-pidfile --pidfile ${PID_FILE} \
46                         --chdir /var/run \
47                         --startas $DAEMON \
48                         --test > /dev/null \
49                         || return 1
50         start-stop-daemon --start \
51                         --background --quiet \
52                         --chuid ${DAEMON_USER}:${DAEMON_GROUP} \
53                         --make-pidfile --pidfile ${PID_FILE} \
54                         --chdir /var/run \
55                         --startas $DAEMON -- $DAEMON_ARGS \
56                         || return 2
57 }
58
59 do_stop() {
60         start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PID_FILE
61         RETVAL=$?
62         rm -f $PID_FILE
63         return "$RETVAL"
64 }
65
66 case "$1" in
67 start)
68         log_daemon_msg "Starting $DESC" "$NAME"
69         do_start
70         case $? in
71                 0|1) log_end_msg 0 ;;
72                 2) log_end_msg 1 ;;
73         esac
74 ;;
75 stop)
76         log_daemon_msg "Stopping $DESC" "$NAME"
77         do_stop
78         case $? in
79                 0|1) log_end_msg 0 ;;
80                 2) log_end_msg 1 ;;
81         esac
82 ;;
83 status)
84         status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
85 ;;
86 restart|force-reload)
87         log_daemon_msg "Restarting $DESC" "$NAME"
88         do_stop
89         case $? in
90         0|1)
91                 do_start
92                 case $? in
93                         0) log_end_msg 0 ;;
94                         1) log_end_msg 1 ;; # Old process is still running
95                         *) log_end_msg 1 ;; # Failed to start
96                 esac
97         ;;
98         *) log_end_msg 1 ;; # Failed to stop
99         esac
100 ;;
101 *)
102         echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
103         exit 3
104 ;;
105 esac
106
107 exit 0