一、腳本創(chuàng)建
在 /etc/init.d/ 目錄下新建一個(gè) rabbitmq?文件,復(fù)制下面的腳本內(nèi)容并添加到文件里。
chmod 777 文件名 加執(zhí)行權(quán)限的話是chmod +x 文件名:
chmod 777 /etc/init.d/rabbitmq
chmod +x?/etc/init.d/rabbitmq
chmod u+x /etc/init.d/rabbitmq
創(chuàng)建自啟服務(wù):
chkconfig?--add rabbitmq
設(shè)置開機(jī)自啟:
chkconfig rabbitmq on
關(guān)閉開機(jī)自啟:
chkconfig rabbitmq off
查看開機(jī)自啟項(xiàng)目:
chkconfig --list
啟動(dòng)測(cè)試:
service?rabbitmq start
二、腳本內(nèi)容(注意加粗字體)
#!/bin/sh
# chkconfig: 2345 10 90
# description: Enable AMQP service provided by RabbitMQ
#
### BEGIN INIT INFO
# Provides:? ? ? ? ? rabbitmq-server
# Required-Start:? ? $remote_fs $network
# Required-Stop:? ? $remote_fs $network
# Description:? ? ? RabbitMQ broker
# Short-Description: Enable AMQP service provided by RabbitMQ broker
### END INIT INFO
# Source function library.
. /etc/init.d/functions
export HOME=/root
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/erlang/bin
NAME=rabbitmq-server
#DAEMON=/usr/sbin/${NAME}
#CONTROL=/usr/sbin/rabbitmqctl
DAEMON=/usr/local/rabbitmq/sbin/${NAME}
CONTROL=/usr/local/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 || exit 0
test -x $CONTROL || exit 0
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}
? ? ? ? chmod 755 ${PID_DIR}
? ? fi
}
remove_pid () {
? ? rm -f ${PID_FILE}
? ? rmdir `dirname ${PID_FILE}` || :
}
start_rabbitmq () {
? ? status_rabbitmq quiet
? ? if [ $RETVAL = 0 ] ; then
? ? ? ? echo RabbitMQ is currently running
? ? 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<&- &
? ? ? ? $CONTROL wait $PID_FILE >/dev/null 2>&1
? ? ? ? RETVAL=$?
? ? ? ? set -e
? ? ? ? case "$RETVAL" in
? ? ? ? ? ? 0)
? ? ? ? ? ? ? ? echo SUCCESS
? ? ? ? ? ? ? ? if [ -n "$LOCK_FILE" ] ; then
? ? ? ? ? ? ? ? ? ? touch $LOCK_FILE
? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ;;
? ? ? ? ? ? *)
? ? ? ? ? ? ? ? remove_pid
? ? ? ? ? ? ? ? echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\}
? ? ? ? ? ? ? ? RETVAL=1
? ? ? ? ? ? ? ? ;;
? ? ? ? esac
? ? fi
}
stop_rabbitmq () {
? ? status_rabbitmq quiet
? ? if [ $RETVAL = 0 ] ; then
? ? ? ? set +e
? ? ? ? $CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${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
? ? ? ? ? ? echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err
? ? ? ? fi
? ? else
? ? ? ? echo RabbitMQ is not running
? ? ? ? RETVAL=0
? ? fi
}
status_rabbitmq() {
? ? set +e
? ? if [ "$1" != "quiet" ] ; then
? ? ? ? $CONTROL status 2>&1
? ? else
? ? ? ? $CONTROL status > /dev/null 2>&1
? ? fi
? ? if [ $? != 0 ] ; then
? ? ? ? RETVAL=3
? ? fi
? ? set -e
}
rotate_logs_rabbitmq() {
? ? set +e
? ? $CONTROL rotate_logs ${ROTATE_SUFFIX}
? ? if [ $? != 0 ] ; then
? ? ? ? RETVAL=1
? ? fi
? ? set -e
}
restart_running_rabbitmq () {
? ? status_rabbitmq quiet
? ? if [ $RETVAL = 0 ] ; then
? ? ? ? restart_rabbitmq
? ? else
? ? ? ? echo RabbitMQ is not runnning
? ? ? ? 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 "Rotating log files for $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