Skip to content

Instantly share code, notes, and snippets.

@seyyah
Created July 7, 2010 13:31
Show Gist options
  • Save seyyah/466686 to your computer and use it in GitHub Desktop.
Save seyyah/466686 to your computer and use it in GitHub Desktop.
#! /bin/sh
### BEGIN INIT INFO
# Provides: supervisor
# Default-Start: 2 3 4 5
# Default-Stop: S 0 1 6
# Short-Description: Starts/stops the supervisor daemon
# Description: This starts and stops the supervisor dameon
# which is used to run and monitor arbitrary programs as
# services, e.g. application servers etc.
### END INIT INFO
#
# Author: Christopher Arndt <[email protected]>
#
# Version: @(#)supervisor 1.0 05-Dec-2006
#
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="supervisor daemon"
NAME="supervisor"
DAEMON="/usr/bin/${NAME}d"
PIDFILE="/var/run/${NAME}d.pid"
SCRIPTNAME="/etc/init.d/$NAME"
CONFFILE="/etc/${NAME}d.conf"
# Gracefully exit if the package has been removed.
test -x "$DAEMON" || exit 0
# supervisord not start up without a configuration
test -r "$CONFFILE" || exit 0
# Read config file if it is present.
if [ -r "/etc/default/$NAME" ]; then
. "/etc/default/$NAME"
fi
test "x$START_SUPERVISOR" = "xyes" || exit 0
#
# Function that starts the daemon/service.
#
d_start() {
start-stop-daemon --start --quiet --pidfile "$PIDFILE" \
--exec "$DAEMON" \
|| echo -n " already running"
}
#
# Function that stops the daemon/service.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile "$PIDFILE" \
--name "$NAME" \
|| echo -n " not running"
}
#
# Function that sends a SIGHUP to the daemon/service.
#
d_reload() {
start-stop-daemon --stop --quiet --pidfile "$PIDFILE" \
--name "$NAME" --signal 1
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
reload|force-reload)
echo -n "Reloading $DESC configuration..."
d_reload
echo "done."
;;
restart)
echo -n "Restarting $DESC: $NAME"
d_stop
# One second might not be time enough for a daemon to stop,
# if this happens, d_start will fail (and dpkg will break if
# the package is being upgraded). Change the timeout if needed
# be, or change d_stop to have start-stop-daemon use --retry.
# Notice that using --retry slows down the shutdown process somewhat.
sleep 1
d_start
echo "."
;;
*)
echo "Usage: "$SCRIPTNAME" {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment