summaryrefslogtreecommitdiff
path: root/scripts/rabbitmq-server.ocf
diff options
context:
space:
mode:
authorAlberto Planas <aplanas@gmail.com>2017-03-29 22:10:53 +0200
committerVincent Untz <vuntz@suse.com>2017-03-30 16:08:48 +0200
commit0a93dca147a5efbe7e5d6c6925873d7c99cfc1a7 (patch)
tree59b62338f7f124877d863c685dacac86425bf397 /scripts/rabbitmq-server.ocf
parent055164bc24c4064de72df297f2a34defaf3c2cfe (diff)
downloadrabbitmq-server-git-0a93dca147a5efbe7e5d6c6925873d7c99cfc1a7.tar.gz
OCF RA: Add new limit_nofile parameter to rabbitmq-server OCF RA
This enables to change the limit of open files, as the default on distributions is usually too low for rabbitmq. Default is 65535.
Diffstat (limited to 'scripts/rabbitmq-server.ocf')
-rwxr-xr-xscripts/rabbitmq-server.ocf19
1 files changed, 19 insertions, 0 deletions
diff --git a/scripts/rabbitmq-server.ocf b/scripts/rabbitmq-server.ocf
index 804e65423d..7190d65e82 100755
--- a/scripts/rabbitmq-server.ocf
+++ b/scripts/rabbitmq-server.ocf
@@ -30,6 +30,7 @@
## OCF_RESKEY_mnesia_base
## OCF_RESKEY_server_start_args
## OCF_RESKEY_pid_file
+## OCF_RESKEY_limit_nofile
#######################################################################
# Initialization:
@@ -44,11 +45,13 @@ OCF_RESKEY_ctl_default="/usr/sbin/rabbitmqctl"
OCF_RESKEY_nodename_default="rabbit@localhost"
OCF_RESKEY_log_base_default="/var/log/rabbitmq"
OCF_RESKEY_pid_file_default="/var/run/rabbitmq/pid"
+OCF_RESKEY_limit_nofile_default="65535"
: ${OCF_RESKEY_server=${OCF_RESKEY_server_default}}
: ${OCF_RESKEY_ctl=${OCF_RESKEY_ctl_default}}
: ${OCF_RESKEY_nodename=${OCF_RESKEY_nodename_default}}
: ${OCF_RESKEY_log_base=${OCF_RESKEY_log_base_default}}
: ${OCF_RESKEY_pid_file=${OCF_RESKEY_pid_file_default}}
+: ${OCF_RESKEY_limit_nofile=${OCF_RESKEY_limit_nofile_default}}
meta_data() {
cat <<END
@@ -144,6 +147,14 @@ Location of the file in which the pid will be stored
<content type="string" default="${OCF_RESKEY_pid_file_default}" />
</parameter>
+<parameter name="limit_nofile" unique="0" required="0">
+<longdesc lang="en">
+Soft and hard limit for NOFILE
+</longdesc>
+<shortdesc lang="en">NOFILE limit</shortdesc>
+<content type="string" default="${OCF_RESKEY_limit_nofile_default}" />
+</parameter>
+
</parameters>
<actions>
@@ -176,6 +187,7 @@ RABBITMQ_LOG_BASE=$OCF_RESKEY_log_base
RABBITMQ_MNESIA_BASE=$OCF_RESKEY_mnesia_base
RABBITMQ_SERVER_START_ARGS=$OCF_RESKEY_server_start_args
RABBITMQ_PID_FILE=$OCF_RESKEY_pid_file
+RABBITMQ_LIMIT_NOFILE=$OCF_RESKEY_limit_nofile
[ ! -z $RABBITMQ_NODENAME ] && NODENAME_ARG="-n $RABBITMQ_NODENAME"
[ ! -z $RABBITMQ_NODENAME ] && export RABBITMQ_NODENAME
@@ -204,6 +216,10 @@ export_vars() {
[ ! -z $RABBITMQ_PID_FILE ] && ensure_pid_dir && export RABBITMQ_PID_FILE
}
+set_limits() {
+ [ ! -z $RABBITMQ_LIMIT_NOFILE ] && ulimit -n $RABBITMQ_LIMIT_NOFILE
+}
+
rabbit_validate_partial() {
if [ ! -x $RABBITMQ_SERVER ]; then
ocf_log err "rabbitmq-server server $RABBITMQ_SERVER does not exist or is not executable";
@@ -276,6 +292,9 @@ rabbit_start() {
export_vars
+ # RabbitMQ requires high soft and hard limits for NOFILE
+ set_limits
+
setsid sh -c "$RABBITMQ_SERVER > ${RABBITMQ_LOG_BASE}/startup_log 2> ${RABBITMQ_LOG_BASE}/startup_err" &
# Wait for the server to come up.