summaryrefslogtreecommitdiff
path: root/scripts/rabbitmq-server
blob: c953a75312d93e9ad82c53d3824baea56fe57afe (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
#!/bin/sh
##   The contents of this file are subject to the Mozilla Public License
##   Version 1.1 (the "License"); you may not use this file except in
##   compliance with the License. You may obtain a copy of the License at
##   http://www.mozilla.org/MPL/
##
##   Software distributed under the License is distributed on an "AS IS"
##   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
##   License for the specific language governing rights and limitations
##   under the License.
##
##   The Original Code is RabbitMQ.
##
##   The Initial Developers of the Original Code are LShift Ltd.,
##   Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
##
##   Portions created by LShift Ltd., Cohesive Financial Technologies
##   LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007-2008
##   LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
##   Technologies Ltd.;
##
##   All Rights Reserved.
##
##   Contributor(s): ______________________________________.
##

[ "x" = "x$NODENAME" ] && NODENAME=rabbit
[ "x" = "x$NODE_IP_ADDRESS" ] && NODE_IP_ADDRESS=0.0.0.0
[ "x" = "x$NODE_PORT" ] && NODE_PORT=5672

ERL_ARGS="+K true +A30 \
-kernel inet_default_listen_options [{nodelay,true},{sndbuf,16384},{recbuf,4096}] \
-kernel inet_default_connect_options [{nodelay,true}]"

CLUSTER_CONFIG_FILE=/etc/default/rabbitmq_cluster.config

[ "x" = "x$LOG_BASE" ] && LOG_BASE=/var/log/rabbitmq
[ "x" = "x$MNESIA_BASE" ] && MNESIA_BASE=/var/lib/rabbitmq/mnesia
[ "x" = "x$MNESIA_DIR" ] && MNESIA_DIR=${MNESIA_BASE}/${NODENAME}
[ "x" = "x$NODE_ONLY" ] && START_RABBIT='-noinput -s rabbit'

## Log rotation
LOGS="${LOG_BASE}/${NODENAME}.log"
SASL_LOGS="${LOG_BASE}/${NODENAME}-sasl.log"
BACKUP_EXTENSION=".1"

[ -f  "${LOGS}" ] && cat "${LOGS}" >> "${LOGS}${BACKUP_EXTENSION}"
[ -f  "${SASL_LOGS}" ] && cat "${SASL_LOGS}" >> "${SASL_LOGS}${BACKUP_EXTENSION}"

if [ -f "$CLUSTER_CONFIG_FILE" ]; then
    CLUSTER_CONFIG="-rabbit cluster_config \"$CLUSTER_CONFIG_FILE\""
else
    CLUSTER_CONFIG=""
fi

erl \
    -pa "`dirname $0`/../ebin" \
    ${START_RABBIT} \
    -sname ${NODENAME} \
    -boot start_sasl \
    +W w \
    ${ERL_ARGS} \
    -rabbit tcp_listeners '[{"'${NODE_IP_ADDRESS}'", '${NODE_PORT}'}]' \
    -sasl errlog_type error \
    -kernel error_logger '{file,"'${LOGS}'"}' \
    -sasl sasl_error_logger '{file,"'${SASL_LOGS}'"}' \
    -os_mon start_cpu_sup true \
    -os_mon start_disksup false \
    -os_mon start_memsup true \
    -os_mon start_os_sup false \
    -os_mon memsup_system_only true \
    -os_mon system_memory_high_watermark 0.95 \
    -mnesia dir "\"${MNESIA_DIR}\"" \
    ${CLUSTER_CONFIG} \
    ${RABBIT_ARGS} \
    "$@"