@@ -179,14 +179,29 @@ RABBITMQ_PID_FILE=$OCF_RESKEY_pid_file
179179[ ! -z $RABBITMQ_NODENAME ] && NODENAME_ARG=" -n $RABBITMQ_NODENAME "
180180[ ! -z $RABBITMQ_NODENAME ] && export RABBITMQ_NODENAME
181181
182+ ensure_pid_dir () {
183+ PID_DIR=` dirname ${RABBITMQ_PID_FILE} `
184+ if [ ! -d ${PID_DIR} ] ; then
185+ mkdir -p ${PID_DIR}
186+ chown -R rabbitmq:rabbitmq ${PID_DIR}
187+ chmod 755 ${PID_DIR}
188+ fi
189+ return $OCF_SUCCESS
190+ }
191+
192+ remove_pid () {
193+ rm -f ${RABBITMQ_PID_FILE}
194+ rmdir ` dirname ${RABBITMQ_PID_FILE} ` || :
195+ }
196+
182197export_vars () {
183198 [ ! -z $RABBITMQ_NODE_IP_ADDRESS ] && export RABBITMQ_NODE_IP_ADDRESS
184199 [ ! -z $RABBITMQ_NODE_PORT ] && export RABBITMQ_NODE_PORT
185200 [ ! -z $RABBITMQ_CONFIG_FILE ] && export RABBITMQ_CONFIG_FILE
186201 [ ! -z $RABBITMQ_LOG_BASE ] && export RABBITMQ_LOG_BASE
187202 [ ! -z $RABBITMQ_MNESIA_BASE ] && export RABBITMQ_MNESIA_BASE
188203 [ ! -z $RABBITMQ_SERVER_START_ARGS ] && export RABBITMQ_SERVER_START_ARGS
189- [ ! -z $RABBITMQ_PID_FILE ] && export RABBITMQ_PID_FILE
204+ [ ! -z $RABBITMQ_PID_FILE ] && ensure_pid_dir && export RABBITMQ_PID_FILE
190205}
191206
192207rabbit_validate_partial () {
@@ -268,7 +283,7 @@ rabbit_start() {
268283 rabbit_wait $RABBITMQ_PID_FILE
269284 rc=$?
270285 if [ " $rc " != $OCF_SUCCESS ]; then
271- rm -f $RABBITMQ_PID_FILE
286+ remove_pid
272287 ocf_log info " rabbitmq-server start failed: $rc "
273288 exit $OCF_ERR_GENERIC
274289 fi
@@ -299,7 +314,7 @@ rabbit_stop() {
299314 rabbit_status
300315 rc=$?
301316 if [ " $rc " = $OCF_NOT_RUNNING ]; then
302- rm -f $RABBITMQ_PID_FILE
317+ remove_pid
303318 stop_wait=0
304319 break
305320 elif [ " $rc " != $OCF_SUCCESS ]; then
0 commit comments