RabbitMQ开机自启动

如通过yum安装的话直接通过chkconfigrabbitmq-serveron就可以设置为开机自启动,但公司这边是通过源代码进行安装,如何也通过系统服务来自启动呢?

步骤:

1.增加自启动脚本:

在/etc/init.d目录下新建一个rabbitmq-server文件,内容如下:

#!/bin/sh

#

#rabbitmq-serverRabbitMQbroker

#

#chkconfig:-8005

#description:EnableAMQPserviceprovidedbyRabbitMQ

#

###BEGININITINFO

#Provides:rabbitmq-server

#Required-Start:$remote_fs$network

#Required-Stop:$remote_fs$network

#Description:RabbitMQbroker

#Short-Description:EnableAMQPserviceprovidedbyRabbitMQbroker

###ENDINITINFO

#Sourcefunctionlibrary.

./etc/init.d/functions

exportHOME=/root

PATH=/sbin:/usr/sbin:/bin:/usr/bin

NAME=rabbitmq-server

#DAEMON=/usr/sbin/${NAME}

#CONTROL=/usr/sbin/rabbitmqctl

DAEMON=/server/rabbitmq/sbin/${NAME}

CONTROL=/server/rabbitmq/sbin/rabbitmqctl

DESC=rabbitmq-server

USER=root

ROTATE_SUFFIX=

INIT_LOG_DIR=/var/log/rabbitmq

PID_FILE=/var/run/rabbitmq/pid

START_PROG="daemon"

LOCK_FILE=/var/lock/subsys/$NAME

test-x$DAEMON||exit0

test-x$CONTROL||exit0

RETVAL=0

set-e

[-f/etc/default/${NAME}]&&./etc/default/${NAME}

ensure_pid_dir(){

PID_DIR=`dirname${PID_FILE}`

if[!-d${PID_DIR}];then

mkdir-p${PID_DIR}

chown-R${USER}:${USER}${PID_DIR}

chmod755${PID_DIR}

fi

}

remove_pid(){

rm-f${PID_FILE}

rmdir`dirname${PID_FILE}`||:

}

start_rabbitmq(){

status_rabbitmqquiet

if[$RETVAL=0];then

echoRabbitMQiscurrentlyrunning

else

RETVAL=0

ensure_pid_dir

set+e

RABBITMQ_PID_FILE=$PID_FILE$START_PROG$DAEMON\

>"${INIT_LOG_DIR}/startup_log"\

2>"${INIT_LOG_DIR}/startup_err"\

0<&-&

$CONTROLwait$PID_FILE>/dev/null2>&1

RETVAL=$?

set-e

case"$RETVAL"in

0)

echoSUCCESS

if[-n"$LOCK_FILE"];then

touch$LOCK_FILE

fi

;;

*)

remove_pid

echoFAILED-check${INIT_LOG_DIR}/startup_\{log,_err\}

RETVAL=1

;;

esac

fi

}

stop_rabbitmq(){

status_rabbitmqquiet

if[$RETVAL=0];then

set+e

$CONTROLstop${PID_FILE}>${INIT_LOG_DIR}/shutdown_log2>${INIT_LOG_DIR}/shutdown_err

RETVAL=$?

set-e

if[$RETVAL=0];then

remove_pid

if[-n"$LOCK_FILE"];then

rm-f$LOCK_FILE

fi

else

echoFAILED-check${INIT_LOG_DIR}/shutdown_log,_err

fi

else

echoRabbitMQisnotrunning

RETVAL=0

fi

}

status_rabbitmq(){

set+e

if["$1"!="quiet"];then

$CONTROLstatus2>&1

else

$CONTROLstatus>/dev/null2>&1

fi

if[$?!=0];then

RETVAL=3

fi

set-e

}

rotate_logs_rabbitmq(){

set+e

$CONTROLrotate_logs${ROTATE_SUFFIX}

if[$?!=0];then

RETVAL=1

fi

set-e

}

restart_running_rabbitmq(){

status_rabbitmqquiet

if[$RETVAL=0];then

restart_rabbitmq

else

echoRabbitMQisnotrunnning

RETVAL=0

fi

}

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"Rotatinglogfilesfor$DESC:"

rotate_logs_rabbitmq

;;

force-reload|reload|restart)

echo-n"Restarting$DESC:"

restart_rabbitmq

echo"$NAME."

;;

try-restart)

echo-n"Restarting$DESC:"

restart_running_rabbitmq

echo"$NAME."

;;

*)

echo"Usage:$0{start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}">&2

RETVAL=1

;;

esac

exit$RETVAL

根据实际情况修改上面内容中的:

DAEMON=/server/rabbitmq/sbin/${NAME}

CONTROL=/server/rabbitmq/sbin/rabbitmqctl

DESC=rabbitmq-server

USER=root

2.保存上面的文件并设置执行权限

chmodu+x/etc/init.d/rabbitmq-server

3.配置为开机自启动服务

ln-s$(whicherl)/usr/bin/erl&&chkconfigrabbitmq-serveron

原文出自:

https://blog.csdn.net/weiguang1017/article/details/79065486

相关推荐