Как Вы настраиваете более новую версию супервизора для запуска на начальной загрузке системы в Ubuntu? Некоторые дистрибутивы просто отстают в их репозиториях.
Когда я использую легкую установку (как рекомендуется по умолчанию на веб-сайте супервизора), я только установил двоичный файл, но это не daemonized.
http://supervisord.org/installing.html
Существует предыдущее старое сообщение, которое упомянуло, что создало или выскочку или systemd сценарий, который имеет несколько разных вещей попытки человек, чтобы заставить его работать, но нет никакого категорического ответа.
Хотя это правда, что документация перечисляет использование easy_install для установки супервизора, она также показывает другие методы, такие как использование пакета. Ограничение пакетов заключается в том, что вы становитесь зависимыми от дистрибутива, отставая от цикла разработки супервизора. Это обходной путь для того, что полагается на добавление внешнего репозитория в ваш дистрибутив. Если вы считаете, что это бесполезно, подумайте об обновлении вашего дистрибутива. Если все, что вас интересует, это сценарий System V init.d, перейдите в конец сообщения. Там есть ссылка на список поддерживаемых сообществом скриптов для различных дистрибутивов, включая Ubuntu.
После некоторого исследования я нашел шаги, которые я нашел: установите супервизор, затем деамонизируйте его и добавьте файл supervisord.conf по умолчанию в Ubuntu 12.04, который имеет старую версию supervisor в своем репозитории.
1.-Добавьте репозиторий Supervisor PPA:
sudo apt-add-repository ppa:schooltool-owners/trunk
Если двоичный файл apt-add-repository не существует, добавьте его из существующего юниверса.
1.a (может потребоваться ) источник: https://askubuntu.com/questions/38021/how-to-add-a-ppa-on-a-server
sudo apt-get install software-properties-common
sudo apt-get install python-software-properties
2.- Установите Supervisor с помощью apt-get
sudo apt-get install supervisor
3. -Проверьте каталог init.d на наличие скрипта. Вы должны получить что-то вроде этого:
#! /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 <miquels@cistron.nl>.
# Modified for Debian
# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
# Further changes by Javier Fernandez-Sanguino <jfs@debian.org>
#
# Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl
#
### 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 $LABEL (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 "$LABEL 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
Подробнее здесь: https://github.com/Supervisor/initscripts
и здесь: http://supervisord.org/running.html