Supervisord는 init 스크립트와 함께 제공되지 않거나 자동으로 시작하는 방법을 나타내지 않습니다. 재부팅 후. 사용자가 제공 한 /etc/init.d 스크립트를 시도했지만 모두 실패합니다.
선호되는 솔루션은 무엇입니까?
답변
실제로, 나는 http://gist.github.com/176149에서 작동하는 것을 발견했습니다 . 설치하려면 :
sudo curl https://gist.github.com/howthebodyworks/176149/raw/88d0d68c4af22a7474ad1d011659ea2d27e35b8d/supervisord.sh > /etc/init.d/supervisord
그것을 실행
sudo chmod +x /etc/init.d/supervisord
자동으로 예약하려면
sudo update-rc.d supervisord defaults
/etc/init.d/supervisord에 매핑 된 /etc/supervisord.conf에서 올바른 pid를 확인하십시오.
example: pidfile=/var/run/supervisord.pid
작업을 중지하고 시작하십시오
service supervisord stop
service supervisord start
답변
우분투 9.10에 대한 가동 스크립트를 만들었습니다
예를 들어 수퍼바이저를 가상 환경에 설치 한 다음 시작 시부 터 수퍼바이저를 시작하고 제어합니다.
텍스트 파일 /etc/init/supervisord.conf를 만듭니다
내용은 다음과 같습니다
description "supervisord"
start on runlevel [345]
stop on runlevel [!345]
expect fork
respawn
exec /misc/home/bkc/Python_Environments/java2/supervisord/bin/supervisord -c /misc/home/bkc/Python_Environments/java2/supervisord/work/supervisord.conf
부팅시 자동으로 감독자를 시작합니다. .conf 파일을 만든 후 수동으로 시작하려면
sudo 시작 감독자
서비스를 수동으로 중지하려면
스도 감독관
답변
이것이 RHEL 5.4 및 CentOS 5.5에서 사용하는 것입니다
supervisord.conf의 일부 구성 설정에 따라 달라집니다. 그러나 제대로 작동하는 것 같습니다.
설치 후 다음 명령을 실행해야합니다
chkconfig --add supervisord
[/etc/rc.d/init.d/supervisord]
#!/bin/sh
#
# /etc/rc.d/init.d/supervisord
#
# Supervisor is a client/server system that
# allows its users to monitor and control a
# number of processes on UNIX-like operating
# systems.
#
# chkconfig: - 64 36
# description: Supervisor Server
# processname: supervisord
# Source init functions
. /etc/rc.d/init.d/functions
prog="supervisord"
prefix="/usr/"
exec_prefix="${prefix}"
prog_bin="${exec_prefix}/bin/supervisord"
PIDFILE="/var/run/$prog.pid"
start()
{
echo -n $"Starting $prog: "
daemon $prog_bin --pidfile $PIDFILE
[ -f $PIDFILE ] && success $"$prog startup" || failure $"$prog startup"
echo
}
stop()
{
echo -n $"Shutting down $prog: "
[ -f $PIDFILE ] && killproc $prog || success $"$prog shutdown"
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
;;
esac
답변
공식 관리자 GitHub 리포지토리에 데비안 / 우분투 스크립트가 있습니다 :
https://github.com/Supervisor/initscripts/blob/master/debian-norrgard
답변
이것은 우분투 10.04.3 LTS에서 나를 위해 일하고 있습니다. 8.04에서도 작동하는 것으로 보입니다.
에 다음을 추가하십시오 /etc/init.d/supervisord
#! /bin/bash -e
SUPERVISORD=/usr/local/bin/supervisord
PIDFILE=/tmp/supervisord.pid
OPTS="-c /etc/supervisord.conf"
test -x $SUPERVISORD || exit 0
. /lib/lsb/init-functions
export PATH="${PATH:+$PATH:}/usr/local/bin:/usr/sbin:/sbin"
case "$1" in
start)
log_begin_msg "Starting Supervisor daemon manager..."
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $SUPERVISORD -- $OPTS || log_end_msg 1
log_end_msg 0
;;
stop)
log_begin_msg "Stopping Supervisor daemon manager..."
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE || log_end_msg 1
log_end_msg 0
;;
restart|reload|force-reload)
log_begin_msg "Restarting Supervisor daemon manager..."
start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $SUPERVISORD -- $OPTS || log_end_msg 1
log_end_msg 0
;;
*)
log_success_msg "Usage: /etc/init.d/supervisor
{start|stop|reload|force-reload|restart}"
exit 1
esac
exit 0
그런 다음 다음을 실행하십시오.
sudo chmod +x /etc/init.d/supervisord
sudo update-rc.d supervisord defaults
sudo service supervisord start
다른 답변들 중 어느 것도 나를 위해 일하지 않았습니다.
답변
“stop”인수 처리를 수정하기 위해이 줄을 /etc/init.d/supervisord에 추가했습니다.
do_stop()
{
/usr/local/bin/supervisorctl stop all
/usr/local/bin/supervisorctl shutdown
# Return
...
그리고 이것은 나를 위해 잘 작동합니다.
답변
Supervisor는 이제 적절한 저장소에있는 것으로 보이므로 init 파일을 직접 만들 필요는 없습니다.
sudo apt-get install supervisor
설치하기 전에 먼저 이전 파일을 정리 (및 백업) 할 수 있습니다.