Update mcollective to 2.3.3 for MOS 6.1
[packages/trusty/mcollective.git] / debian / mcollective.init
1 #! /bin/sh
2 ### BEGIN INIT INFO
3 # Provides:          mcollective
4 # Required-Start:    $network $named $remote_fs $syslog
5 # Required-Stop:     $network $named $remote_fs $syslog
6 # Default-Start:     2 3 4 5
7 # Default-Stop:      0 1 6
8 # Short-Description: MCollective daemon
9 # Description:       Marionette Collective daemon - build server
10 #                    orchestration or parallel job execution systems.
11 ### END INIT INFO
12
13 # Author: Jonas Genannt <jonas.genannt@capi2name.de>
14
15 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
16 DESC="Marionette Collective daemon"
17 NAME=mcollective
18 DAEMON=/usr/sbin/mcollectived
19 PIDFILE=/var/run/$NAME.pid
20 DAEMON_ARGS="--config=/etc/mcollective/server.cfg --pid=$PIDFILE"
21 SCRIPTNAME=/etc/init.d/$NAME
22 RUN=yes
23
24 # Exit if the package is not installed
25 [ -x "$DAEMON" ] || exit 0
26
27 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
28
29 . /lib/init/vars.sh
30
31 . /lib/lsb/init-functions
32
33 # XXX: cloud-init writes daemonize=0 into the server.conf
34 # (https://github.com/stackforge/fuel-web/blob/master/fuel_agent/cloud-init-templates/cloud_config_ubuntu.jinja2#L50)
35 # Undo that error here
36 # FIXME: remove this hack after fixing the template
37
38 conf_fixup()
39 {
40         local conf=/etc/mcollective/server.cfg
41         if grep -q -e 'daemonize\s*=\s*0' $conf; then
42                 sed -i $conf -re 's/^\s*daemonize\s*=\s*0\s*$/daemonize=1/'
43         fi
44 }
45
46 do_start()
47 {
48         if [ "$RUN" != "yes" ] ; then
49                 log_progress_msg "(disabled)"
50                 log_end_msg 0
51
52                 exit 0
53         fi
54         conf_fixup
55         start-stop-daemon --start --quiet --pidfile $PIDFILE \
56                 --startas $DAEMON -- $DAEMON_ARGS \
57                 || return 2
58 }
59
60 do_stop()
61 {
62         if [ -s $PIDFILE ]; then
63                 kill `cat ${PIDFILE}` >/dev/null 2>&1
64         fi
65         rm -f $PIDFILE
66         return "0"
67 }
68
69 case "$1" in
70   start)
71         [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
72         do_start
73         case "$?" in
74                 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
75                 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
76         esac
77         ;;
78   stop)
79         [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
80         do_stop
81         case "$?" in
82                 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
83                 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
84         esac
85         ;;
86   status)
87        status_of_proc -p "${PIDFILE}" "$DAEMON" "$NAME" && exit 0 || exit $?
88        ;;
89   restart|force-reload)
90         log_daemon_msg "Restarting $DESC" "$NAME"
91         do_stop
92         case "$?" in
93           0|1)
94                 do_start
95                 case "$?" in
96                         0) log_end_msg 0 ;;
97                         1) log_end_msg 1 ;; # Old process is still running
98                         *) log_end_msg 1 ;; # Failed to start
99                 esac
100                 ;;
101           *)
102                 # Failed to stop
103                 log_end_msg 1
104                 ;;
105         esac
106         ;;
107   *)
108         echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
109         exit 3
110         ;;
111 esac
112
113 :