2015-02-24 28 views
14

Kuyruk sistemimin her zaman çalışır durumda olduğundan emin olmak için denetleyici çalışıyorum.AWS AMI Linux Sunucusunda Supervisord Ayarı

1) $ easy_install amir

2) $ echo_supervisord_conf>/etc (kök veya süper kullanıcı olarak Ran): Burada

Ben çeşitli kaynaklardan birlikte parçalı aldım adımlar vardır /supervisord.conf

3) $ sudo vi supervisord.conf

4) FOLLO yapıştırıldı kanat dosyasının sonuna:

komut =/usr/bin/php/path/to/AppName/esnaf --env = üretim --timeout = 240 kuyruğu: dinlemek

5) $ supervisord -c /etc/supervisord.conf

6) $ supervisorctl

7) gözetmen> durum

gözetmen>

Hiçbir şey göstermiyor.

cevap

16

Gittiğim çözüm. AWS AMI, Python uygulamalarını kurmak için pip içerir. İşte kurulum komutları şunlardır:

$ sudo pip install supervisor 
$ echo_supervisord_conf 
$ sudo su - 
$ echo_supervisord_conf > /etc/supervisord.conf 

siz manuel açılıp hizmetini açmasını başlangıç ​​komut dosyası oluşturmak gerekir danışmanı yükledikten sonra.

Bu, Linux dağıtımınıza göre değişecektir, Ubuntu yüklediğinizde sizin için bir init betiği oluşturacaktır, AMI gibi diğer dağıtımlar olmayacaktır. Daha sonra sistem yeniden başlatmada otomatik başlamak için chkconfig amire ekleyebilir

https://github.com/Supervisor/initscripts

: Burada çeşitli Linux dağıtımı init-up komut dosyaları için mükemmel bir kaynaktır.Senden sonra yakın

Yol

/etc/init.d/supervisord 
AWS-AMI veya RedHat Linux için

Örnek Init Senaryo

#!/bin/bash 
# 
# supervisord Startup script for the Supervisor process control system 
# 
# Author:  Mike McGrath <[email protected]> (based off yumupdatesd) 
#    Jason Koppe <[email protected]> adjusted to read sysconfig, 
#     use supervisord tools to start/stop, conditionally wait 
#     for child processes to shutdown, and startup later 
#    Erwan Queffelec <[email protected]> 
#     make script LSB-compliant 
# 
# chkconfig: 345 83 04 
# description: Supervisor is a client/server system that allows \ 
# its users to monitor and control a number of processes on \ 
# UNIX-like operating systems. 
# processname: supervisord 
# config: /etc/supervisord.conf 
# config: /etc/sysconfig/supervisord 
# pidfile: /var/run/supervisord.pid 
# 
### BEGIN INIT INFO 
# Provides: supervisord 
# Required-Start: $all 
# Required-Stop: $all 
# Short-Description: start and stop Supervisor process control system 
# Description: Supervisor is a client/server system that allows 
# its users to monitor and control a number of processes on 
# UNIX-like operating systems. 
### END INIT INFO 

# Source function library 
. /etc/rc.d/init.d/functions 

# Source system settings 
if [ -f /etc/sysconfig/supervisord ]; then 
    . /etc/sysconfig/supervisord 
fi 

# Path to the supervisorctl script, server binary, 
# and short-form for messages. 
supervisorctl=/usr/local/bin/supervisorctl 
supervisord=${SUPERVISORD-/usr/local/bin/supervisord} 
prog=supervisord 
pidfile=${PIDFILE-/tmp/supervisord.pid} 
lockfile=${LOCKFILE-/var/lock/subsys/supervisord} 
STOP_TIMEOUT=${STOP_TIMEOUT-60} 
OPTIONS="${OPTIONS--c /etc/supervisord.conf}" 
RETVAL=0 

start() { 
    echo -n $"Starting $prog: " 
    daemon --pidfile=${pidfile} $supervisord $OPTIONS 
    RETVAL=$? 
    echo 
    if [ $RETVAL -eq 0 ]; then 
     touch ${lockfile} 
     $supervisorctl $OPTIONS status 
    fi 
    return $RETVAL 
} 

stop() { 
    echo -n $"Stopping $prog: " 
    killproc -p ${pidfile} -d ${STOP_TIMEOUT} $supervisord 
    RETVAL=$? 
    echo 
    [ $RETVAL -eq 0 ] && rm -rf ${lockfile} ${pidfile} 
} 

reload() { 
    echo -n $"Reloading $prog: " 
    LSB=1 killproc -p $pidfile $supervisord -HUP 
    RETVAL=$? 
    echo 
    if [ $RETVAL -eq 7 ]; then 
     failure $"$prog reload" 
    else 
     $supervisorctl $OPTIONS status 
    fi 
} 

restart() { 
    stop 
    start 
} 

case "$1" in 
    start) 
     start 
     ;; 
    stop) 
     stop 
     ;; 
    status) 
     status -p ${pidfile} $supervisord 
     RETVAL=$? 
     [ $RETVAL -eq 0 ] && $supervisorctl $OPTIONS status 
     ;; 
    restart) 
     restart 
     ;; 
    condrestart|try-restart) 
     if status -p ${pidfile} $supervisord >&/dev/null; then 
      stop 
      start 
     fi 
     ;; 
    force-reload|reload) 
     reload 
     ;; 
    *) 
     echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|reload}" 
     RETVAL=2 
    esac 

    exit $RETVAL 

ve çalıştırılabilir yapın, kaydedin: Burada

benim için çalışan biridir Tüm kullanıcılar tarafından:

chmod a+x /etc/init.d/supervisord 
Eğer çalışan bir işlem olarak/usr/bin/supervisord görmüyorsanız

ps -fe | grep supervisor 

sonra başlamak gerekir:

sonraki supervisord işlemi aşağıdaki komutu çalıştırarak çalışan aslında olduğunu teyit isteyeyim elle yukarı:

sudo service supervisord start 

Supervisord sunucu yeniden başlatıldıktan o zaman devreye gerekmektedir. Bu, chkconfig kullanarak yeniden başlatmadan sonra apache'nin nasıl açıldığına benzer şekilde yapılabilir.

İlk chkconfig ekleyin, başlangıç ​​açma işlemini liste

sudo chkconfig --add supervisord 

Ardından hızlı cevap için önyükleme sonra

sudo chkconfig supervisord on 
+0

"/etc/init.d/supervisord" dosyasını oluşturdum ve daha sonra "sudo service supervisord start" komutunu çalıştırdım ama alınan "env: /etc/init.d/supervisord: İzin reddedildi" .... herhangi bir fikir? Ben, ben bu çok ayrıntılı bir cevapta eksik bir adım oldu yapmak için centos 7 – llioor

+1

chmod a + x/etc/init.d/supervisord' ile ec2 Amazon AIM kullanıyorum :) –

+0

Teşekkürler Filipe, Cevabı güncelleyeceğim . –

4

süpervizör program eklediğinizi bilmiyor. This is answered on serverfault aşağıdakileri yapın: Bu arada

supervisorctl reread 
supervisorctl update 

, conf.d sözdizimi kullanarak yapılandırma dosyalarını korumak için daha kolay. Başka bir deyişle, /etc/supervisor/conf.d/artisan.conf adlı bir dosya oluşturun. Diğer her şey aynıdır, ancak yapılandırma dosyalarınızı kontrol etmek ve bunları kurulumdaki makinelerle senkronize etmek daha kolaydır.

+0

Hey sayesinde açmak için chkconfig söyle! Kaçmak ve test etmek için sabırsızlanıyorum! –

+0

Bunu denedim ve bazı hatalar vardı. Süpervizörün işe başlayamayacağımı fark ettim, su $ servis süpervizörü olarak çalışmaya başladığımda amiri alıyorum: tanınmayan servis. Böyle bir başlangıç ​​senaryosuna ihtiyacım var mı? http://translate.google.com/translate?hl=tr&sl=ja&u=http://d.hatena.ne.jp/massat/20111013/1318484253&prev=search –

+0

Süpervizörü nasıl yüklediniz? AWS Linux AMI'de olduğunuzu mu sanıyorum? (orijinal sorunuzu düzenleyin, o şeyleri ekleyin, sonra buraya bir yorum ekleyin. Tekrar üretmeye çalışacağım.) – tedder42