此脚本主要是针对 pip python 或者 easy_install 安装 的supervisor , apt-get 安装的不需要会自动生成 ,其实这个就是apt-get 安装生成的。 不过注意一件事 pip python 或者 easy_install 安装 的supervisor 在 /usr/local/bin 为了适应此脚本需要做一个软连接到 /usr/bin/
- root@167646:/etc/init.d# ln -s /usr/local/bin/supervisord /usr/bin/
- root@167646:/etc/init.d# ln -s /usr/local/bin/supervisorctl /usr/bin/
cat /etc/init.d/supervisor
- #! /bin/sh
- #
- # skeleton example file to build /etc/init.d/ scripts.
- # This file should be used to construct scripts for /etc/init.d.
- #
- # Written by Miquel van Smoorenburg <[email protected]>.
- # Modified for Debian
- # by Ian Murdock <[email protected]>.
- # Further changes by Javier Fernandez-Sanguino <[email protected]>
- #
- # Version: @(#)skeleton 1.9 26-Feb-2001 [email protected]
- #
- ### BEGIN INIT INFO
- # Provides: supervisor
- # Required-Start: $remote_fs $network $named
- # Required-Stop: $remote_fs $network $named
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Start/stop supervisor
- # Description: Start/stop supervisor daemon and its configured
- # subprocesses.
- ### END INIT INFO
- . /lib/lsb/init-functions
- PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
- DAEMON=/usr/bin/supervisord
- NAME=supervisord
- DESC=supervisor
- test -x $DAEMON || exit 0
- LOGDIR=/var/log/supervisor
- PIDFILE=/var/run/$NAME.pid
- DODTIME=5 # Time to wait for the server to die, in seconds
- # If this value is set too low you might not
- # let some servers to die gracefully and
- # 'restart' will not work
- # Include supervisor defaults if available
- if [ -f /etc/default/supervisor ] ; then
- . /etc/default/supervisor
- fi
- DAEMON_OPTS="-c /etc/supervisor/supervisord.conf $DAEMON_OPTS"
- set -e
- running_pid()
- {
- # Check if a given process pid's cmdline matches a given name
- pid=$1
- name=$2
- [ -z "$pid" ] && return 1
- [ ! -d /proc/$pid ] && return 1
- (cat /proc/$pid/cmdline | tr "\000" "\n"|grep -q $name) || return 1
- return 0
- }
- running()
- {
- # Check if the process is running looking at /proc
- # (works for all users)
- # No pidfile, probably no daemon present
- [ ! -f "$PIDFILE" ] && return 1
- # Obtain the pid and check it against the binary name
- pid=`cat $PIDFILE`
- running_pid $pid $DAEMON || return 1
- return 0
- }
- force_stop() {
- # Forcefully kill the process
- [ ! -f "$PIDFILE" ] && return
- if running ; then
- kill -15 $pid
- # Is it really dead?
- [ -n "$DODTIME" ] && sleep "$DODTIME"s
- if running ; then
- kill -9 $pid
- [ -n "$DODTIME" ] && sleep "$DODTIME"s
- if running ; then
- echo "Cannot kill $NAME (pid=$pid)!"
- exit 1
- fi
- fi
- fi
- rm -f $PIDFILE
- return 0
- }
- case "$1" in
- start)
- echo -n "Starting $DESC: "
- start-stop-daemon --start --quiet --pidfile $PIDFILE \
- --startas $DAEMON -- $DAEMON_OPTS
- test -f $PIDFILE || sleep 1
- if running ; then
- echo "$NAME."
- else
- echo " ERROR."
- fi
- ;;
- stop)
- echo -n "Stopping $DESC: "
- start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
- echo "$NAME."
- ;;
- force-stop)
- echo -n "Forcefully stopping $DESC: "
- force_stop
- if ! running ; then
- echo "$NAME."
- else
- echo " ERROR."
- fi
- ;;
- #reload)
- #
- # If the daemon can reload its config files on the fly
- # for example by sending it SIGHUP, do it here.
- #
- # If the daemon responds to changes in its config file
- # directly anyway, make this a do-nothing entry.
- #
- # echo "Reloading $DESC configuration files."
- # start-stop-daemon --stop --signal 1 --quiet --pidfile \
- # /var/run/$NAME.pid --exec $DAEMON
- #;;
- force-reload)
- #
- # If the "reload" option is implemented, move the "force-reload"
- # option to the "reload" entry above. If not, "force-reload" is
- # just the same as "restart" except that it does nothing if the
- # daemon isn't already running.
- # check wether $DAEMON is running. If so, restart
- start-stop-daemon --stop --test --quiet --pidfile $PIDFILE \
- --startas $DAEMON \
- && $0 restart \
- || exit 0
- ;;
- restart)
- echo -n "Restarting $DESC: "
- start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
- [ -n "$DODTIME" ] && sleep $DODTIME
- start-stop-daemon --start --quiet --pidfile $PIDFILE \
- --startas $DAEMON -- $DAEMON_OPTS
- echo "$NAME."
- ;;
- status)
- echo -n "$NAME is "
- if running ; then
- echo "running"
- else
- echo " not running."
- exit 1
- fi
- ;;
- *)
- N=/etc/init.d/$NAME
- # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
- echo "Usage: $N {start|stop|restart|force-reload|status|force-stop}" >&2
- exit 1
- ;;
- esac
- exit 0
没有评论