Sample init.d script

This is the init.d script that I used to manage my beanstalk daemon, but it can (and has been) easily modified for other uses.

! /bin/sh

BEGIN INIT INFO

Provides: beanstalkd

Required-Start: $remote_fs $syslog

Required-Stop: $remote_fs $syslog

Default-Start: 2 3 4 5

Default-Stop: 1

Short-Description: Beanstalk queue server

END INIT INFO

EXEC=/usr/local/bin/beanstalkd PIDFILE=/var/run/beanstalkd.pid OPTS=

set -e

. /lib/lsb/init-functions

test -x $EXEC || exit 0

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in start) logdaemonmsg "Starting Beanstalk job queue" "beanstalkd" if start-stop-daemon --start --quiet --oknodo --make-pidfile --background --pidfile $PIDFILE --exec $EXEC -- $OPTS; then logendmsg 0 else logendmsg 1 fi ;; stop) logdaemonmsg "Stopping Beanstalk job queue" "beanstalkd" if start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE; then logendmsg 0 else logendmsg 1 fi ;;

reload|force-reload) logdaemonmsg "Reloading Beanstalk job queue" "beanstalkd" if start-stop-daemon --stop --signal 1 --quiet --oknodo --make-pidfile --background --pidfile $PIDFILE --exec $EXEC; then logendmsg 0 else logendmsg 1 fi ;;

restart) logdaemonmsg "Restarting Beanstalk job queue" "beanstalkd" start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE if start-stop-daemon --start --quiet --oknodo --make-pidfile --background --pidfile $PIDFILE --exec $EXEC -- $OPTS; then logendmsg 0 else logendmsg 1 fi ;;

try-restart) logdaemonmsg "Restarting Beanstalk job queue" "beanstalkd" set +e start-stop-daemon --stop --quiet --retry 30 --pidfile $PIDFILE RET="$?" set -e case $RET in 0) # old daemon stopped if start-stop-daemon --start --quiet --oknodo --make-pidfile --background --pidfile $PIDFILE --exec $EXEC -- $OPTS; then logendmsg 0 else logendmsg 1 fi ;; 1) # daemon not running logprogressmsg "(not running)" logendmsg 0 ;; *) # failed to stop log_progress_msg "(failed to stop)" log_end_msg 1 ;; esac ;;

status) statusofproc -p $PIDFILE $EXEC beanstalkd && exit 0 || exit $? ;;

*) log_action_msg "Usage: /etc/init.d/beanstalk {start|stop|reload|force-reload|restart|try-restart|status}" exit 1 esac

exit 0

1 Comment

  1. Thanks man. This works great!

Leave your thoughts
  • You can use some HTML in your comment.
  • Your comment may not display immediately due to spam filtering. Please wait for moderation.