Otomatik olarak Linux'ta denetleme nasıl başlatılır (Ubuntu)


38

Supervisord bir init betiği ile gelmiyor ya da otomatik olarak nasıl başlatılacağını göstermiyor. Bir yeniden başlatmadan sonra. Bazı kullanıcı katkılarıyla /etc/init.d komut dosyalarını denedim, ancak hepsi başarısız oldu.

Tercih edilen çözüm ne olurdu?


"başarısız" derken ne demek istiyorsun? bTW; bu soru serverfault'a ait gibi görünüyor.
erenon

Debian stabil init betiklerinde çalışıyor, bu yüzden bu sorunun modası geçmiş olduğunu düşünüyorum.

Yanıtlar:


40

Aslında, burada çalışan bir tane buldum http://gist.github.com/176149 . Yüklemek için:

sudo curl https://gist.github.com/howthebodyworks/176149/raw/88d0d68c4af22a7474ad1d011659ea2d27e35b8d/supervisord.sh > /etc/init.d/supervisord

çalıştırmak için

sudo chmod +x /etc/init.d/supervisord

ve otomatik olarak programlamak için

sudo update-rc.d supervisord defaults

/Etc/init.d/supervisord içinde eşlenen /etc/supervisord.conf dosyasındaki doğru ödemeyi yapın

example: pidfile=/var/run/supervisord.pid

Durdur ve düzgün çalışmaya başla

service supervisord stop
service supervisord start

Bu debian'a özgü mü? Centos6.5 kutusunda eksik /lib/init/vars.sh ve update-rc.d eksik
EoghanM

1
supervisord.conf'un nereye gittiğini nasıl biliyoruz?
Weiwei,

1
Debian sıkma deposundan sadece süpervizör kurmak çok daha kolaydı - yetenek yükleme süpervizörü /etc/init.d dosyasının bağlantılarını içeren kurulumunu içeriyor ve config dosyasını /etc/supervisor/supervisord.conf dosyasına koyar
RichVel

2
@RichVel Bu birçok hata içeren bir alfa sürümüdür. Belki çoğu sisteminizi etkilemez, ancak emin olamazsınız ve en son sürüm olmamak her an sizi ısırır. Kaynak deposunu kontrol edin,
glarrain 29:13

1
@glarrain - heads-up ve karşılaştırma bağlantısı için teşekkürler ... Farkında değildim - Debian paketleyicisinin alfa sürümü alması can sıkıcıydı. Elbette Debian'ın kararlı olduğu nokta yalnızca kanıtlanmış sürümleri kullanmaktır ...
RichVel

13

Ubuntu 9.10 için bir başlangıç ​​betiği oluşturdum.

Örneğin, süpervizörü sanal bir ortama yükledim, ardından süpervizörü başlangıçtan itibaren kontrol ettim.

/etc/init/supervisord.conf bir metin dosyası oluşturun

içeriği:

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

Otomatik olarak süpervizör açılışta başlayacaktır. .Conf dosyasını oluşturduktan sonra el ile başlatmak için,

sudo başlangıç ​​denetçisi

Servisi el ile durdurmak için

sudo durdurma süpervizörü


2
Teşekkürler! İşte bir liner: curl -L https://gist.github.com/raw/1213031/929e578faae2ad3bcb29b03d116bcb09e1932221/sup‌​ervisord.conf > /etc/init/supervisord.conf && start supervisord(kök olmanız gerekir)
charlax

3
Çalıştırmadan önce her zaman birinci astarları kontrol edin. Bu iyi, ama sadece bu ipucunu eklemek istedim.
Cory Walker,

12

RHEL 5.4 ve CentOS 5.5'te kullandığım şey bu

Supervisord.conf'taki bazı yapılandırma ayarlarına bağlı olup olmadığından emin değilim. Ama iyi çalışıyor gibi görünüyor.

Yüklemeden sonra aşağıdaki komutu çalıştırmanız gerekir.

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

yalnızca çalıştırmayı denemeden önce + x izinleri eklemeniz gerekeceğini ekler: chmod + x /etc/init.d/supervisord
JiminyCricket

chkconfig --add supervisordÇalıştırdıktan sonra farklı koşu seviyeleri için de etkinleştirmeniz gerektiğini unutmayınchkconfig supervisord --level 345 on
Corey Ballou


2

Bu benim için Ubuntu 10.04.3 LTS'de çalışıyor. Ayrıca 8.04'te çalışıyor gibi görünüyor:

Aşağıdakini ekleyin /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

O zaman koş:

sudo chmod +x /etc/init.d/supervisord
sudo update-rc.d supervisord defaults

sudo service supervisord start

Diğer cevapların hiçbiri benim için çalıştı.


1

"Stop" argüman işlemesini düzeltmek için bu satırları /etc/init.d/supervisord içine ekledim:

do_stop()
{
    /usr/local/bin/supervisorctl stop all
    /usr/local/bin/supervisorctl shutdown
    # Return
    ...

ve bu benim için harika çalışıyor.


1

Gözetmen şimdi uygun depoda görünüyor, bu nedenle init dosyalarını elde etmek için gerekli olması gerekmiyor.

sudo apt-get install supervisor

Yüklemeden önce ilk önce eski dosyalarınızı temizlemek (ve yedeklemek) isteyebilirsiniz.


"Bu paketlerden bazılarının resmi sürüm sürümünün oldukça gerisinde kalabileceğinin farkında olmanız gerekir. Örneğin, Ubuntu 12.04 (Nisan 2012'de yayımlandı), Süpervizör 3.0a8'e (Ocak 2010'da yayımlanan) dayalı bir paket sunduğunu" belirtti. (Supervisord'un supervisord.org/… belgesinden )
glarrain
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.