Supervisord ไม่ได้มาพร้อมกับสคริปต์เริ่มต้นหรือไม่ได้ระบุว่าจะเริ่มต้นอย่างไรโดยอัตโนมัติเช่น หลังจากรีบูตเครื่อง ฉันได้ลองใช้สคริปต์ /etc/init.d ที่สนับสนุนโดยผู้ใช้บางคน แต่พวกเขาทั้งหมดล้มเหลว
สิ่งที่จะเป็นทางออกที่ต้องการ?
Supervisord ไม่ได้มาพร้อมกับสคริปต์เริ่มต้นหรือไม่ได้ระบุว่าจะเริ่มต้นอย่างไรโดยอัตโนมัติเช่น หลังจากรีบูตเครื่อง ฉันได้ลองใช้สคริปต์ /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
ตรวจสอบให้แน่ใจว่า pid ที่ถูกต้องใน /etc/supervisord.conf ซึ่งถูกแมปใน /etc/init.d/supervisord
example: pidfile=/var/run/supervisord.pid
หยุดและเริ่มทำงานอย่างถูกต้อง
service supervisord stop
service supervisord start
ฉันสร้างสคริปต์ upstart สำหรับ ubuntu 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 เริ่ม supervisord
หากต้องการหยุดบริการด้วยตนเองให้ใช้
sudo stop supervisord
curl -L https://gist.github.com/raw/1213031/929e578faae2ad3bcb29b03d116bcb09e1932221/supervisord.conf > /etc/init/supervisord.conf && start supervisord
(คุณจะต้อง root)
นี่คือสิ่งที่ฉันใช้กับ 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
chkconfig --add supervisord
คุณต้องเปิดใช้งานสำหรับระดับการวิ่งที่แตกต่างกันผ่านทางchkconfig supervisord --level 345 on
มีสคริปต์ Debian / Ubuntu ใน repo เป็นผู้บังคับบัญชา GitHub อย่างเป็นทางการ:
https://github.com/Supervisor/initscripts/blob/master/debian-norrgard
สิ่งนี้ใช้ได้กับฉันใน Ubuntu 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
ไม่มีคำตอบอื่นใดที่เหมาะกับฉัน
ฉันเพิ่มบรรทัดนี้ใน /etc/init.d/supervisord เพื่อแก้ไขการประมวลผลอาร์กิวเมนต์ "หยุด":
do_stop()
{
/usr/local/bin/supervisorctl stop all
/usr/local/bin/supervisorctl shutdown
# Return
...
และมันใช้งานได้ดีสำหรับฉัน
ตอนนี้ดูเหมือนว่าหัวหน้างานจะอยู่ในที่เก็บของ apt ดังนั้นจึงไม่จำเป็นต้องมีไฟล์ init ด้วยมือเพียง:
sudo apt-get install supervisor
คุณอาจต้องการล้าง (และสำรองข้อมูล) ไฟล์เก่าของคุณก่อนการติดตั้ง