diff options
author | Michael Klishin <michael@novemberain.com> | 2017-04-05 17:49:34 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-05 17:49:34 +0300 |
commit | 0da346eb8869e7b593c5be31c355f50b7b1e1cb5 (patch) | |
tree | 7c1c7eca52bf55925feebb32cb180b18eea2f4cf /scripts/rabbitmq-server.ocf | |
parent | 7045fbac6e1f69f7451070e330a1da0636f44008 (diff) | |
parent | 73080ac78348916635e45c2f62aa7d86c0765b42 (diff) | |
download | rabbitmq-server-git-0da346eb8869e7b593c5be31c355f50b7b1e1cb5.tar.gz |
Merge pull request #21 from vuntz/ocf-limit_nofile
OCF RA: Add new limit_nofile parameter to both OCF resource agents
Diffstat (limited to 'scripts/rabbitmq-server.ocf')
-rwxr-xr-x | scripts/rabbitmq-server.ocf | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/scripts/rabbitmq-server.ocf b/scripts/rabbitmq-server.ocf index bf8880d16b..cb3895ae76 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,13 @@ export_vars() { [ ! -z $RABBITMQ_PID_FILE ] && ensure_pid_dir && export RABBITMQ_PID_FILE } +set_limits() { + local current_limit=$(su rabbitmq -s /bin/sh -c "ulimit -n") + if [ ! -z $RABBITMQ_LIMIT_NOFILE -a $RABBITMQ_LIMIT_NOFILE -gt $current_limit ] ; then + ulimit -n $RABBITMQ_LIMIT_NOFILE + fi +} + 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 +295,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. |