-
-
Save TomA-R/4991f33a989f8aa803872b1d6c6335fa to your computer and use it in GitHub Desktop.
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=nobody | |
# custom: added line below | |
BEANSTALKD_PID_FILE=/var/run/beanstalkd.pid | |
[ -e /etc/sysconfig/beanstalkd ] && . /etc/sysconfig/beanstalkd | |
lockfile=/var/lock/subsys/beanstalkd | |
print_fail() { | |
echo -e " [ \e[31mFAIL\e[39m ]" | |
} | |
print_success() { | |
echo -e " [ \e[32mOK\e[39m ]" | |
} | |
start() { | |
[ -x $exec ] || exit 1 | |
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 | |
BEANSTALKD_PID=`$exec $options > /dev/null 2>&1 & echo $!` | |
if [ -z $BEANSTALKD_PID ]; then | |
print_fail | |
else | |
echo $BEANSTALKD_PID > $BEANSTALKD_PID_FILE | |
print_success | |
fi | |
#daemon --pidfile $BEANSTALKD_PID_FILE --check beanstalkd nohup $exec $options & | |
retval=$? | |
[ $retval -eq 0 ] && touch $lockfile | |
return $retval | |
} | |
stop() { | |
echo -n $"Stopping $prog: " | |
if [ -f $BEANSTALKD_PID_FILE ]; then | |
kill `cat $BEANSTALKD_PID_FILE` | |
else | |
printf "%s\n" "pidfile not found" | |
fi | |
retval=$? | |
# Remove pid file and lock file | |
rm -rf $BEANSTALKD_PID_FILE | |
success="0" | |
[ $retval -eq 0 ] && rm -f $lockfile && success=1 | |
if [ "$success" -eq "0" ]; then | |
print_fail | |
else | |
print_success | |
fi | |
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