summaryrefslogtreecommitdiff
path: root/packaging/debs/Debian/debian/init.d
blob: 70dd0adf5f652474c17f883911a55e622ab3218f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/bin/sh
### BEGIN INIT INFO
# Provides:          rabbitmq
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       RabbitMQ broker
# Short-Description: Enable AMQP service provided by RabbitMQ broker
### END INIT INFO

DAEMON=/usr/lib/rabbitmq/bin/rabbitmq-multi
NAME=rabbitmq-server
DESC=rabbitmq-server
USER=rabbitmq
NODE_COUNT=1
ROTATE_SUFFIX=

test -x $DAEMON || exit 0

# Include rabbitmq defaults if available
if [ -f /etc/default/rabbitmq ] ; then
	. /etc/default/rabbitmq
fi

RETVAL=0
set -e
cd /

start_rabbitmq () {
    set +e
    su $USER -s /bin/sh -c "$DAEMON start_all ${NODE_COUNT}" > /var/log/rabbitmq/startup_log 2> /var/log/rabbitmq/startup_err
    case "$?" in
      0)
        echo SUCCESS
        RETVAL=0
        ;;
      1)
        echo TIMEOUT - check /var/log/rabbitmq/startup_\{log,err\}
        RETVAL=1
        ;;
      *)
        echo FAILED - check /var/log/rabbitmq/startup_log, _err
        RETVAL=1
        ;;
    esac
    set -e
}

stop_rabbitmq () {
    set +e
    status_rabbitmq quiet
    if [ $RETVAL = 0 ] ; then
        su $USER -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err
        RETVAL=$?
        if [ $RETVAL != 0 ] ; then
            echo FAILED - check /var/log/rabbitmq/shutdown_log, _err
        fi
    else
        echo No nodes running 
        RETVAL=0
    fi
    set -e
}

status_rabbitmq() {
    set +e
    if [ "$1" != "quiet" ] ; then
        su $USER -s /bin/sh -c "$DAEMON status" 2>&1
    else
        su $USER -s /bin/sh -c "$DAEMON status" > /dev/null 2>&1
    fi
    if [ $? != 0 ] ; then
        RETVAL=1
    fi
    set -e
}

rotate_logs_rabbitmq() {
    set +e
    su $USER -s /bin/sh -c "$DAEMON rotate_logs ${ROTATE_SUFFIX}" 2>&1
    set -e
}

restart_rabbitmq() {
    stop_rabbitmq	    
    start_rabbitmq
}

case "$1" in
    start)
        echo -n "Starting $DESC: "
        start_rabbitmq
        echo "$NAME."
        ;;
    stop)
        echo -n "Stopping $DESC: "
        stop_rabbitmq
        echo "$NAME."
        ;;
    status)
        status_rabbitmq
        ;;
    rotate-logs)
        echo -n "Rotating log files for $DESC: "
        rotate_logs_rabbitmq
        ;;
    force-reload|restart)
        echo -n "Restarting $DESC: "
        restart_rabbitmq
        echo "$NAME."
        ;;
    *)
        echo "Usage: $0 {start|stop|status|rotate-logs|restart|force-reload}" >&2
        RETVAL=1
        ;;
esac

exit $RETVAL