Created
August 9, 2010 13:41
-
-
Save shiki/515422 to your computer and use it in GitHub Desktop.
For CentOS, a modified /etc/init.d/beanstlkd file which creates a pid file in /var/run/beanstalkd.pid
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# beanstalkd - a simple, fast workqueue service | |
# | |
# chkconfig: - 57 47 | |
# description: a simple, fast workqueue service | |
# processname: beanstalkd | |
# config: /etc/sysconfig/beanstalkd | |
# | |
### BEGIN INIT INFO | |
# Provides: beanstalkd | |
# Required-Start: $local_fs $network $remote_fs | |
# Required-Stop: $local_fs $network $remote_fs | |
# Default-Stop: 0 1 2 6 | |
# Short-Description: start and stop beanstalkd | |
# Description: a simple, fast work-queue service | |
### END INIT INFO | |
# Source function library. | |
. /etc/rc.d/init.d/functions | |
# Source networking configuration. | |
. /etc/sysconfig/network | |
# Check that networking is up. | |
[ "$NETWORKING" = "no" ] && exit | |
exec="/usr/bin/beanstalkd" | |
prog=$(basename $exec) | |
# default options, overruled by items in sysconfig | |
BEANSTALKD_ADDR=0.0.0.0 | |
BEANSTALKD_PORT=11300 | |
BEANSTALKD_USER=beanstalkd | |
# custom: added line below | |
BEANSTALKD_PID_FILE=/var/run/beanstalkd.pid | |
[ -e /etc/sysconfig/beanstalkd ] && . /etc/sysconfig/beanstalkd | |
lockfile=/var/lock/subsys/beanstalkd | |
start() { | |
[ -x $exec ] || exit 5 | |
echo -n $"Starting $prog: " | |
# if not running, start it up here, usually something like "daemon $exec" | |
options="-l ${BEANSTALKD_ADDR} -p ${BEANSTALKD_PORT} -u ${BEANSTALKD_USER}" | |
if [ "${BEANSTALKD_MAX_JOB_SIZE}" != "" ]; then | |
options="${options} -z ${BEANSTALKD_MAX_JOB_SIZE}" | |
fi | |
if [ "${BEANSTALKD_BINLOG_DIR}" != "" ]; then | |
if [ ! -d "${BEANSTALKD_BINLOG_DIR}" ]; then | |
echo "Creating binlog directory (${BEANSTALKD_BINLOG_DIR})" | |
mkdir -p ${BEANSTALKD_BINLOG_DIR} && chown ${BEANSTALKD_USER}:${BEANSTALKD_USER} ${BEANSTALKD_BINLOG_DIR} | |
fi | |
options="${options} -b ${BEANSTALKD_BINLOG_DIR}" | |
if [ "${BEANSTALKD_BINLOG_FSYNC_PERIOD}" != "" ]; then | |
options="${options} -f ${BEANSTALKD_BINLOG_FSYNC_PERIOD}" | |
else | |
options="${options} -F" | |
fi | |
if [ "${BEANSTALKD_BINLOG_SIZE}" != "" ]; then | |
options="${options} -s ${BEANSTALKD_BINLOG_SIZE}" | |
fi | |
fi | |
daemon $exec -d $options | |
retval=$? | |
echo | |
# custom: added line below | |
echo `ps auxf | grep -v grep | grep "$exec -d $options" | awk '{print $2}'` > $BEANSTALKD_PID_FILE | |
[ $retval -eq 0 ] && touch $lockfile | |
return $retval | |
} | |
stop() { | |
echo -n $"Stopping $prog: " | |
# stop it here, often "killproc $prog" | |
killproc $prog -INT | |
retval=$? | |
echo | |
# custom: added line below | |
rm -rf $BEANSTALKD_PID_FILE | |
[ $retval -eq 0 ] && rm -f $lockfile | |
return $retval | |
} | |
restart() { | |
stop | |
start | |
} | |
reload() { | |
restart | |
} | |
force_reload() { | |
restart | |
} | |
rh_status() { | |
# run checks to determine if the service is running or use generic status | |
status $prog | |
} | |
rh_status_q() { | |
rh_status >/dev/null 2>&1 | |
} | |
case "$1" in | |
start) | |
rh_status_q && exit 0 | |
$1 | |
;; | |
stop) | |
rh_status_q || exit 0 | |
$1 | |
;; | |
restart) | |
$1 | |
;; | |
reload) | |
rh_status_q || exit 7 | |
$1 | |
;; | |
force-reload) | |
force_reload | |
;; | |
status) | |
rh_status | |
;; | |
condrestart|try-restart) | |
rh_status_q || exit 0 | |
restart | |
;; | |
*) | |
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" | |
exit 2 | |
esac | |
exit $? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment