İngilizceFransızcaİspanyolca

OnWorks favicon'u

süpervizör - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında süpervizörü çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen komut süpervizörüdür.

Program:

ADI


süpervizör - Süpervizör Belgeleri

Supervisor, kullanıcılarının bir numarayı izlemesini ve kontrol etmesini sağlayan bir istemci/sunucu sistemidir.
UNIX benzeri işletim sistemlerindeki işlemlerin sayısı.

Launchd, daemontools ve runit gibi programların aynı hedeflerinden bazılarını paylaşır. farklı
bu programlardan bazıları, bunun yerine çalıştırılmak üzere tasarlanmamıştır. init "işlem kimliği" olarak
1". Bunun yerine, bir proje veya bir proje ile ilgili süreçleri kontrol etmek için kullanılması amaçlanmıştır.
müşteridir ve önyükleme sırasında başka herhangi bir program gibi başlaması amaçlanmıştır.

ANLATI DOKÜMANTASYON


Giriş
Genel Bakış
Supervisor, kullanıcılarının bir dizi cihazı kontrol etmesine izin veren bir istemci/sunucu sistemidir.
UNIX benzeri işletim sistemlerindeki işlemler. Aşağıdakilerden ilham almıştır:

Kolaylık
Yazmaya ihtiyaç duymak genellikle elverişsizdir rc.d her bir işlem için komut dosyaları
örneği. rc.d komut dosyaları, sürecin en düşük ortak paydalı harika bir biçimidir
başlatma/otomatik başlatma/yönetim, ancak bunları yazmak ve sürdürmek acı verici olabilir.
Buna ek olarak, rc.d komut dosyaları, kilitlenen bir işlemi otomatik olarak yeniden başlatamaz ve birçok
programlar bir kilitlenme durumunda kendilerini düzgün bir şekilde yeniden başlatmazlar. Süpervizör süreçleri başlatır
alt süreçleri olarak ve bir kilitlenme durumunda bunları otomatik olarak yeniden başlatacak şekilde yapılandırılabilir.
Ayrıca, kendi çağrısında süreçleri başlatmak için otomatik olarak yapılandırılabilir.

doğruluk
UNIX'teki işlemlerde doğru yukarı/aşağı durumunu elde etmek genellikle zordur. pid dosyaları
çoğu zaman yalan söyler. Supervisord, süreçleri alt süreçler olarak başlatır, böylece her zaman doğruyu bilir
çocuklarının yukarı/aşağı durumu ve bu veriler için rahatlıkla sorgulanabilir.

delegasyon
Süreç durumunu kontrol etmesi gereken kullanıcıların genellikle sadece bunu yapması gerekir. istemiyorlar ya
süreçlerin çalıştığı makineye tam gelişmiş kabuk erişimine ihtiyaç duyar.
"Düşük" TCP bağlantı noktalarını dinleyen işlemler, genellikle
kök kullanıcı (bir UNIX hatası). Genellikle izin vermenin tamamen iyi olduğu durumdur.
"normal" kişilerin böyle bir işlemi durdurması veya yeniden başlatması, ancak onlara kabuk erişimi sağlaması
genellikle pratik değildir ve onlara root erişimi veya sudo erişimi sağlamak genellikle
imkansız. Onlara bu sorunun neden var olduğunu açıklamak da (haklı olarak) zordur.
Supervisord root olarak başlatılırsa, "normal" kullanıcıların kontrol etmesine izin vermek mümkündür.
problemin inceliklerini onlara açıklamaya gerek duymadan bu tür süreçler.
Supervisorctl, makineye çok sınırlı bir erişim biçimine izin verir ve esasen izin verir.
kullanıcıların süreç durumunu görmeleri ve süpervizör kontrollü alt süreçleri yayarak kontrol etmeleri
Basit bir kabuk veya web kullanıcı arayüzünden "durdur", "başlat" ve "yeniden başlat" komutları.

İşlem Grupları
Süreçlerin genellikle gruplar halinde, hatta bazen "öncelikli" olarak başlatılması ve durdurulması gerekir.
İnsanlara bunun nasıl yapılacağını açıklamak genellikle zordur.
işlemlere öncelikler atamanıza ve kullanıcının komutlar aracılığıyla
Supervisorctl istemcisi "tümünü başlat" ve "tümünü yeniden başlat" gibi
önceden atanmış öncelik sırası. Ek olarak, süreçler "süreç" olarak gruplandırılabilir.
gruplar" ve mantıksal olarak ilişkili bir dizi süreç bir birim olarak durdurulabilir ve başlatılabilir.

Özellikler
Basit
Süpervizör, öğrenmesi kolay, basit bir INI stili yapılandırma dosyası aracılığıyla yapılandırılır.
Yeniden başlatmanın başarısız olması gibi hayatınızı kolaylaştıran işlem başına birçok seçenek sunar
süreçler ve otomatik günlük döndürme.

merkezi
Supervisor, süreçlerinizi başlatmak, durdurmak ve izlemek için size tek bir yer sağlar.
Süreçler tek tek veya gruplar halinde kontrol edilebilir. Süpervizörü şu şekilde yapılandırabilirsiniz:
yerel veya uzak bir komut satırı ve web arayüzü sağlayın.

Verimli
Süpervizör, alt işlemlerini fork/exec aracılığıyla başlatır ve alt işlemler arka plan programı oluşturmaz. NS
işletim sistemi, bazılarının aksine, bir süreç sona erdiğinde derhal Süpervizöre sinyal verir.
zahmetli PID dosyalarına ve yeniden başlatmak için periyodik yoklamaya dayanan çözümler başarısız oldu
süreçler.

Genişletilebilir
Süpervizör, programların herhangi bir şekilde yazıldığı basit bir olay bildirim protokolüne sahiptir.
dili izlemek için kullanabilir ve kontrol için bir XML-RPC arayüzü. Ayrıca inşa edilmiştir
Python geliştiricileri tarafından kullanılabilecek uzantı noktaları ile.

Uyumlu
Supervisor, Windows dışında hemen hemen her şey üzerinde çalışır. Test edilir ve
Linux, Mac OS X, Solaris ve FreeBSD'de desteklenir. Tamamen Python ile yazılmıştır,
bu nedenle kurulum bir C derleyicisi gerektirmez.

Kanıtlanmış
Supervisor günümüzde çok aktif olarak geliştirilse de yeni bir yazılım değildir. süpervizör
yıllardır var ve zaten birçok sunucuda kullanılıyor.

Gözetmen Bileşenler
gözetmen
Süpervizörün sunucu parçasının adı gözetmen. Başlatmaktan sorumludur
alt programlar kendi çağrısında, istemcilerden gelen komutlara yanıt veriyor, yeniden başlatılıyor
çökmüş veya alt işlemlerden çıkılmış, alt işlemlerini günlüğe kaydetmiş stdout'u ve Stderr çıktı ve
alt süreç yaşamlarındaki noktalara karşılık gelen "olayları" oluşturma ve işleme.

Sunucu işlemi bir yapılandırma dosyası kullanır. Bu genellikle şurada bulunur:
/etc/supervisord.conf. Bu yapılandırma dosyası bir "Windows-INI" stili yapılandırma dosyasıdır.
Bu dosyayı uygun dosya sistemi izinleriyle güvende tutmak önemlidir, çünkü
şifrelenmemiş kullanıcı adları ve şifreler içerebilir.

süpervizörctl
Süpervizörün komut satırı istemci parçasının adı süpervizörctl. Bir
tarafından sağlanan özelliklere kabuk benzeri arayüz gözetmen. Itibaren süpervizörctl,
kullanıcı farklı bağlanabilir gözetmen süreçler, alt süreçlerde durum al
alt süreçleri tarafından kontrol edilir, durdurulur ve başlatılır ve çalışan süreçlerin listelerini alır.
gözetmen.

Komut satırı istemcisi, bir UNIX etki alanı soketi veya bir internet üzerinden sunucuyla konuşur
(TCP) soketi. Sunucu, bir istemcinin kullanıcısının sunması gerektiğini iddia edebilir.
komutları gerçekleştirmesine izin vermeden önce kimlik doğrulama bilgileri. Müşteri
süreç genellikle sunucuyla aynı yapılandırma dosyasını kullanır, ancak herhangi bir yapılandırma
ile dosya [denetçi] içindeki bölüm çalışacaktır.

web Sunucusu
Şununla karşılaştırılabilir işlevselliğe sahip (seyrek) bir web kullanıcı arayüzü süpervizörctl olabilir
başlatırsanız bir tarayıcı aracılığıyla erişilir gözetmen bir internet soketine karşı. ziyaret edin
sunucu URL'si (ör. http://localhost: 9001 /) aracılığıyla süreç durumunu görüntülemek ve kontrol etmek için
yapılandırma dosyasını etkinleştirdikten sonra web arayüzü [inet_http_sunucusu] Bölüm.

XML-RPC Arayüzü
Web kullanıcı arayüzüne hizmet eden aynı HTTP sunucusu, bir XML-RPC arayüzü sunar.
süpervizörü ve çalıştırdığı programları sorgulamak ve kontrol etmek için kullanılır. xml_rpc'ye bakın.

Platform Yer Alan Kurallar
Supervisor test edilmiştir ve Linux (Ubuntu 9.10), Mac OS X üzerinde çalıştığı bilinmektedir.
(10.4/10.5/10.6) ve Solaris (Intel için 10) ve FreeBSD 6.1. Muhtemelen iyi çalışacaktır
çoğu UNIX sistemi.

Süpervizör değil Windows'un herhangi bir sürümü altında çalıştırın.

Supervisor'ın Python 2.4 veya üzeri ile çalıştığı biliniyor ancak herhangi bir sürümde çalışmayacak
Python'un 3.

Koşu Gözetmen
Bu bölüm, bir BİNDİR nasıl çalıştırılacağını anlatırken gözetmen ve
süpervizörctl komutlar. Bu, Python kurulumunuzun sahip olduğu "bindir" dizinidir.
ile yapılandırıldı. Örneğin, aracılığıyla yüklenen bir Python kurulumu için
. / Yapılandırma --prefix=/usr/yerel/py; Yapmak; yapmak kurmak, BİNDİR olurdu /usr/yerel/py/bin.
Farklı platformlardaki Python yorumlayıcıları farklı bir BİNDİR. çıktısına bak
kurulum.py kurmak eğer seninkinin nerede olduğunu bulamıyorsan.

Ekleme a Programı
önce gözetmen sizin için yararlı bir şey yapacak, en az bir tane eklemeniz gerekecek
program yapılandırmasına gidin. NS program bölümünde bir program tanımlayacaktır.
çalıştırdığınızda ve yönettiğinizde gözetmen emretmek. Bir program eklemek için yapmanız gerekenler
düzenle süpervizör.conf dosyası.

Çalıştırılması mümkün olan en basit programlardan biri UNIX'tir. kedi programı. A program Bölüm
koşacak kedi zaman gözetmen işlemin başladığı aşağıda gösterilmiştir.

[program:foo]
komut =/bin/kedi

Bu dörtlük kesilip içine yapıştırılabilir. süpervizör.conf dosya. bu en basiti
olası program yapılandırması, çünkü yalnızca bir komutu adlandırır. Program yapılandırması
bölümlerde burada gösterilmeyen birçok başka yapılandırma seçeneği vardır. Görmek
Daha fazla bilgi için programx_section.

Koşu gözetmen
Başlatmak için gözetmen, koşmak $BINDIR/denetçi. Ortaya çıkan süreç şeytanlaştıracak
kendini ve terminalden ayırın. Bir işlem günlüğü tutar $CWD/gözetmen.log by
Varsayılan.

başlatabilirsiniz gözetmen geçirerek ön planda yürütülebilir -n üzerinde bayrak
Komut satırı. Bu, başlatma sorunlarının hatalarını ayıklamak için kullanışlıdır.

UYARI:
Ne zaman gözetmen başlar, varsayılan olarak yapılandırma dosyasını arayacaktır
yerleri dahil olmak üzere the akım çalışma rehber. Güvenlik bilincine sahipseniz,
muhtemelen sonra bir "-c" argümanı belirtmek isteyecektir gözetmen komut belirten
birinin sizi kandırmadığından emin olmak için bir yapılandırma dosyasına giden mutlak bir yol
bir haydut içeren bir dizinden süpervizör çalıştırma süpervizör.conf dosyası.
Supervisor bu olmadan root olarak başlatıldığında bir uyarı verilir. -c argüman.

Tarafından kontrol edilen program setini değiştirmek için gözetmen, düzenle süpervizör.conf dosya
ve öldürmek -HUP veya başka bir şekilde yeniden başlatın gözetmen işlem. Bu dosyanın birkaç örneği var
program tanımları.

The gözetmen komut, bir dizi komut satırı seçeneğini kabul eder. Bu komutların her biri
satır seçenekleri, yapılandırma dosyasındaki herhangi bir eşdeğer değeri geçersiz kılar.

gözetmen Komut satırı Opsiyonlar
-c DOSYA, --yapılandırma=DOSYA
yol bir gözetmen yapılandırma dosyası

-n, --nodaemon
koşmak gözetmen ön planda.

-h, --yardım et
Showroom gözetmen komut yardımı.

-u KULLANICI, --kullanıcı=KULLANICI
UNIX kullanıcı adı veya sayısal kullanıcı kimliği. Eğer gözetmen kök kullanıcı olarak başlatılır,
başlatma sırasında mümkün olan en kısa sürede bu kullanıcıya ayarlayın.

-m SEKİZLİ, --umask=SEKİZLİ
tarafından kullanılması gereken umask'ı temsil eden sekizli sayı (örn. 022) gözetmen
başladıktan sonra.

-d PATH, --dizin=PATH
Denetleyici bir arka plan programı olarak çalıştırıldığında, arka plan programı oluşturmadan önce bu dizine cd.

-l DOSYA, --logdosyası=DOSYA
Denetlenen etkinlik günlüğü olarak kullanılacak dosya adı yolu.

-y BAYT, --logfile_maxbytes=BAYT
Döndürme gerçekleşmeden önce denetçi etkinlik günlüğü dosyasının maksimum boyutu. Değer
sonekle çarpılır, örneğin "1" bir bayttır, "1MB" 1 megabayttır, "1GB" 1'dir
gigabayt.

-y NUM, --logfile_backups=NUM
Çevrede tutulacak denetçi etkinlik günlüğünün yedek kopyalarının sayısı. Her biri
günlük dosyası boyutunda olacak günlük dosyası_maxbytes.

-e SEVİYE, --logdüzeyi=SEVİYE
Süpervizörün etkinlik günlüğüne yazması gereken günlük düzeyi. Geçerli
seviyeler iz, ayıklamak, bilgi, uyarmak, hata, ve kritik.

-j DOSYA, --piddosyası=DOSYA
Denetçinin pid dosyasını yazması gereken dosya adı.

-i STRING, --tanımlayıcı=STRING
Bu örnek için çeşitli istemci kullanıcı arabirimleri tarafından sunulan keyfi dize tanımlayıcısı
süpervizörü.

-q PATH, --childlogdir=PATH
Süpervizörün kendi bilgilerini yazacağı bir dizine (zaten mevcut olmalıdır) giden yol OTO
-mode alt işlem günlükleri.

-k, --nocleanup
Önlemek gözetmen temizlik yapmaktan (eski OTO işlem günlük dosyaları)
başlangıçta.

-a NUM, --minfds=NUM
Denetçi için mevcut olması gereken minimum dosya tanımlayıcı sayısı
önce süreç başarılı bir şekilde başlayacaktır.

-t, --strip_ansi
ANSI kaçış dizilerini tüm alt günlük işlemlerinden çıkarın.

-v, --versiyon
Denetlenen sürüm numarasını stdout'a yazdırın ve çıkın.

--profile_options=LİSTESİ
Profil oluşturma için virgülle ayrılmış seçenekler listesi. nedenler gözetmen altında koşmak
profil oluşturucu ve virgülle ayrılmış bir liste olan seçeneklere dayalı çıktı sonuçları
Aşağıdakilerden: birikimli, aramalar, Arayanların. Örneğin kümülatif, arayanlar.

--minprocs=NUM
Denetlenen kişi için mevcut olması gereken minimum işletim sistemi işlem yuvası sayısı
önce süreç başarılı bir şekilde başlayacaktır.

süpervizörctl Komut satırı Opsiyonlar
-c, --yapılandırma
Yapılandırma dosyası yolu (varsayılan /etc/supervisord.conf)

-h, --yardım et
Kullanım mesajını yazdır ve çık

-i, --interaktif
Komutları yürüttükten sonra etkileşimli bir kabuk başlatın

-s,--sunucu URL'si URL
Denetlenen sunucunun dinlediği URL (varsayılan "http://localhost: 9001").

-u, --Kullanıcı adı
Sunucuyla kimlik doğrulama için kullanılacak kullanıcı adı

-p, --parola
Sunucuyla kimlik doğrulama için kullanılacak parola

-r, --tarih-dosyası
Bir okuma satırı geçmişi tutun (okuma satırı varsa)

aksiyon [argümanlar]

Eylemler "kuyruk" veya "dur" gibi komutlardır. -i belirtilirse veya herhangi bir işlem belirtilmezse
komut satırında, etkileşimli olarak yazılan eylemleri yorumlayan bir "kabuk" başlatılır. Kullanmak
mevcut eylemler hakkında bilgi edinmek için "yardım" eylemi.

Koşu süpervizörctl
Başlatmak için süpervizörctl, koşmak $BINDIR/gözetmenctl. Bir kabuk sunulacak
tarafından şu anda yönetilen süreçleri kontrol etmenize izin verir. gözetmen. "yardım" yazın
Desteklenen komutlar hakkında bilgi almak için komut isteminde.

The süpervizörctl çalıştırılabilir dosya, çağrıldığında "tek seferlik" komutlarla çağrılabilir.
bir komut satırından argümanlar. Bir örnek: süpervizörctl durdurmak herşey. argümanlar ise
komut satırında bulunursa, etkileşimli kabuğun çağrılmasını engeller.
Bunun yerine, komut yürütülecek ve süpervizörctl çıkacak

If süpervizörctl karşı etkileşimli modda çağrılır gözetmen Gerektiren
kimlik doğrulama, kimlik doğrulama bilgileri istenecektir.

Sinyalleri
The gözetmen programa belirli eylemleri gerçekleştirmesine neden olan sinyaller gönderilebilir.
çalışırken.

Bu sinyallerden herhangi birini teke gönderebilirsiniz. gözetmen işlem kimliği. Bu işlem kimliği
tarafından temsil edilen dosyada bulunabilir. pid dosyası parametresi [denetçi] Bölüm
yapılandırma dosyasının (varsayılan olarak $CWD/supervisord.pid).

işaret Eylemciler
SİGTERM
gözetmen ve tüm alt süreçleri kapanacaktır. Bu birkaç saniye sürebilir.

SIGINT
gözetmen ve tüm alt süreçleri kapanacaktır. Bu birkaç saniye sürebilir.

SIGQUIT
gözetmen ve tüm alt süreçleri kapanacaktır. Bu birkaç saniye sürebilir.

GÖRÜŞ
gözetmen tüm işlemleri durduracak, yapılandırmayı ilk yapılandırmadan yeniden yükleyecektir
bulduğu dosyayı ve tüm işlemleri yeniden başlatın.

SIGUSR2
gözetmen ana etkinlik günlüğünü ve tüm alt günlük dosyalarını kapatır ve yeniden açar.

Süre Güvenlik
Geliştiriciler, bir gözetmen olarak çalışan süreç
root, istenmeyen ayrıcalık yükselmesine yol açamaz. Fakat uyarı alıcı. Süpervizör
DJ Bernstein'ın daemontools'u kadar paranoyak değil, gözetmen
verilerin olabileceği yapılandırma dosyasında rastgele yol özelliklerine izin verir.
yazılı. Rastgele yol seçimlerine izin vermek, sembolik bağlantıdan güvenlik açıkları oluşturabilir
saldırılar. Yapılandırmanızda yolları belirtirken dikkatli olun. emin olun
gözetmen yapılandırma dosyası imtiyazsız kullanıcılar tarafından okunamaz veya yazılamaz ve
süpervizör paketi tarafından yüklenen tüm dosyaların "aklı başında" dosya izni korumasına sahip olduğunu
ayarlar. Ek olarak, PYTHONPATH aklı başında ve tüm Python standardı
kitaplık dosyaları yeterli dosya izni korumasına sahiptir.

Koşu gözetmen otomatik olarak on başlangıç
Supervisor'ın dağıtımla paketlenmiş bir sürümünü kullanıyorsanız, zaten olması gerekir.
dağıtımınızın hizmet yönetimi altyapısına entegre edilmiştir.

Çeşitli işletim sistemleri için kullanıcı katkılı komut dosyaları şu adreste bulunur:
https://github.com/Supervisor/initscripts

Takılıp kalmanız durumunda Serverfault'ta bazı cevaplar var: Ne kadar için otomatik olarak başlama
gözetmen on Linux (Ubuntu'da)

yapılandırma fileto
Süpervizör yapılandırma dosyası geleneksel olarak adlandırılmıştır. süpervizör.conf. Tarafından kullanılır
her ikisi de gözetmen ve süpervizörctl. Her iki uygulama da başlatılmadan başlatılırsa -c
seçenek (uygulamaya yapılandırma dosya adını söylemek için kullanılan seçenek
açıkça), uygulama adlı bir dosya arayacaktır. süpervizör.conf içinde
aşağıdaki konumlarda, belirtilen sırada. Bulduğu ilk dosyayı kullanır.

1. $CWD/supervisord.conf

2. $CWD/etc/supervisord.conf

3. /etc/supervisord.conf

4. ../etc/supervisord.conf (Yürütülebilir dosyaya göre)

5. ../supervisord.conf (Yürütülebilir dosyaya göre)

NOT:
Bazı dağıtımlar, Supervisor'ı kendi özelleştirmeleriyle paketlemiştir. Bunlar
Supervisor'ın değiştirilmiş sürümleri, yapılandırma dosyasını diğer konumlardan yükleyebilir.
burada anlatılanlardan daha Özellikle, kullanan Ubuntu paketleri bulunmuştur.
/etc/supervisor/supervisord.conf.

fileto oluşturulan
süpervizör.conf Windows-INI stili (Python ConfigParser) dosyasıdır. bölümleri vardır (her
a ile gösterilir [başlık]) ve bölümler içindeki anahtar/değer çiftleri. bölümler ve bunların
izin verilen değerler aşağıda açıklanmıştır.

çevre Değişkenler
O anda ortamda mevcut olan ortam değişkenleri gözetmen is
başlatıldı, Python dize ifadesi sözdizimi kullanılarak yapılandırma dosyasında kullanılabilir
%(ENV_X)s:

[program:örnek]
komut=/usr/bin/örnek --loglevel=%(ENV_LOGLEVEL)s

Yukarıdaki örnekte, ifade %(ENV_LOGLEVEL)s değerine genişletilecektir.
ortam değişkeni LOGLLEVEL.

NOT:
Süpervizör 3.2 ve sonraki sürümlerde, %(ENV_X)s ifadeler tüm seçeneklerde desteklenir. İçinde
önceki sürümlerde, bazı seçenekler bunları destekler, ancak çoğu desteklemez. için belgelere bakın
Aşağıdaki her seçenek.

[unix_http_sunucusu] Bölüm Ayarlar
The süpervizör.conf dosya adında bir bölüm içeriyor [unix_http_sunucusu] altında
UNIX etki alanı soketini dinleyen bir HTTP sunucusu için yapılandırma parametreleri şu şekilde olmalıdır:
sokuldu. Yapılandırma dosyasında yoksa [unix_http_sunucusu] bölüm, bir UNIX alanı
soket HTTP sunucusu başlatılmayacak. İzin verilen yapılandırma değerleri şu şekildedir:
izler.

[unix_http_sunucusu] Bölüm Değerler
dosya
UNIX etki alanı soketine giden yol (örn. /tmp/supervisord.sock) hangi amirin üzerinde olacağı
HTTP/XML-RPC isteklerini dinleyin. süpervizörctl ile iletişim kurmak için XML-RPC kullanır
gözetmen bu limanın üzerinde. Bu seçenek değeri içerebilir %(burada)shangi genişler
bulunduğu dizine gözetmen yapılandırma dosyası bulundu.

Varsayılan: Yok.

gereklidir: Yok hayır.

tanıtıldı: 3.0

chmod
UNIX etki alanı soketinin UNIX izin modu bitlerini şu adreste bu değere değiştirin:
başlamak.

Varsayılan: 0700

gereklidir: Yok hayır.

tanıtıldı: 3.0

chown
Soket dosyasının kullanıcısını ve grubunu bu değere değiştirin. UNIX kullanıcı adı olabilir
(Örneğin kutsal vücut yağı) veya iki nokta üst üste ile ayrılmış bir UNIX kullanıcı adı ve grubu (örn. yılbaşı:tekerlek).

Varsayılan: Denetleyiciyi başlatan kullanıcının kullanıcı adını ve grubunu kullanın.

gereklidir: Yok hayır.

tanıtıldı: 3.0

kullanıcı adı
Bu HTTP sunucusuna kimlik doğrulaması için gereken kullanıcı adı.

Varsayılan: Kullanıcı adı gerekmez.

gereklidir: Yok hayır.

tanıtıldı: 3.0

şifre
Bu HTTP sunucusuna kimlik doğrulaması için gereken parola. Bu açık bir metin olabilir
parola veya dize tarafından önek eklenmişse SHA-1 karma değeri olarak belirtilebilir {SHA}. Için
örnek, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d SHA'da depolanan sürümüdür
parola "parola".

Karma parolanın hex biçiminde olması gerektiğini unutmayın.

Varsayılan: Şifre gerekmez.

gereklidir: Yok hayır.

tanıtıldı: 3.0

[unix_http_sunucusu] Bölüm Örnek E-posta
[unix_http_sunucusu]
dosya = /tmp/supervisor.sock
mod = 0777
chown=kimse:nogroup
kullanıcı adı = kullanıcı
şifre = 123

[inet_http_sunucusu] Bölüm Ayarlar
The süpervizör.conf dosya adında bir bölüm içeriyor [inet_http_sunucusu] altında
TCP (internet) soketini dinleyen bir HTTP sunucusu için yapılandırma parametreleri,
sokulacak. Yapılandırma dosyasında yoksa [inet_http_sunucusu] bölüm, bir inet HTTP
sunucu başlatılmayacak. İzin verilen yapılandırma değerleri aşağıdaki gibidir.

[inet_http_sunucusu] Bölüm Değerler
Liman
Bir TCP ana bilgisayarı:bağlantı noktası değeri veya (örn. 127.0.0.1:9001) hangi süpervizörün dinleyeceği
HTTP/XML-RPC istekleri. süpervizörctl ile iletişim kurmak için XML-RPC kullanacak gözetmen
bu limanın üzerinde. Makinedeki tüm arayüzleri dinlemek için şunu kullanın: : 9001 or *:9001.

Varsayılan: Standart değil.

gereklidir: Evet.

tanıtıldı: 3.0

kullanıcı adı
Bu HTTP sunucusuna kimlik doğrulaması için gereken kullanıcı adı.

Varsayılan: Kullanıcı adı gerekmez.

gereklidir: Yok hayır.

tanıtıldı: 3.0

şifre
Bu HTTP sunucusuna kimlik doğrulaması için gereken parola. Bu açık bir metin olabilir
parola veya dize tarafından önek eklenmişse SHA-1 karma değeri olarak belirtilebilir {SHA}. Için
örnek, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d SHA'da depolanan sürümüdür
parola "parola".

Karma parolanın hex biçiminde olması gerektiğini unutmayın.

Varsayılan: Şifre gerekmez.

gereklidir: Yok hayır.

tanıtıldı: 3.0

[inet_http_sunucusu] Bölüm Örnek E-posta
[inet_http_sunucusu]
bağlantı noktası = 127.0.0.1:9001
kullanıcı adı = kullanıcı
şifre = 123

[denetçi] Bölüm Ayarlar
The süpervizör.conf dosya adında bir bölüm içeriyor [denetçi] hangi küresel ayarlarda
ilişkili gözetmen işlemi girilmelidir. Bunlar aşağıdaki gibidir.

[denetçi] Bölüm Değerler
kayıt dosyası
Denetlenen sürecin etkinlik günlüğüne giden yol. Bu seçenek şunları içerebilir:
değer %(burada)s, süpervizör yapılandırmasının bulunduğu dizine genişler
dosya bulundu.

Varsayılan: $CWD/supervisord.log

gereklidir: Yok hayır.

tanıtıldı: 3.0

günlük dosyası_maxbytes
Etkinlik günlüğü dosyası tarafından kullanılmadan önce tüketilebilecek maksimum bayt sayısı
döndürülür ("KB", "MB" ve "GB" gibi son ek çarpanları değerde kullanılabilir). Ayarlamak
Sınırsız bir günlük boyutunu belirtmek için bu değeri 0'a getirin.

Varsayılan50MB

gereklidir: Yok hayır.

tanıtıldı: 3.0

günlük dosyası_yedekleri
Etkinlik günlüğü dosyasının döndürülmesi sonucunda elde tutulacak yedekleme sayısı. ayarlanırsa
0'a, hiçbir yedekleme tutulmaz.

Varsayılan: 10

gereklidir: Yok hayır.

tanıtıldı: 3.0

günlük seviyesi
Denetlenen etkinlik günlüğüne ne yazıldığını belirleyen günlük düzeyi. Biri
kritik, hata, uyarmak, bilgi, ayıklamak, izya da gevezelik. Günlük düzeyinde unutmayın ayıklamak,
süpervizör günlük dosyası, alt süreçlerinin stderr/stdout çıktısını kaydeder
ve bir hata ayıklamak için yararlı olan süreç durumu değişiklikleri hakkında genişletilmiş bilgi
düzgün başlamayan süreç. Ayrıca bakınız: Activity_log_levels.

Varsayılan: bilgi

gereklidir: Yok hayır.

tanıtıldı: 3.0

pid dosyası
Denetçinin pid dosyasını tuttuğu konum. Bu seçenek şunları içerebilir:
değer %(burada)s, süpervizör yapılandırmasının bulunduğu dizine genişler
dosya bulundu.

Varsayılan: $CWD/supervisord.pid

gereklidir: Yok hayır.

tanıtıldı: 3.0

Umask
Denetleme sürecinin umask'ı.

Varsayılan: 022

gereklidir: Yok hayır.

tanıtıldı: 3.0

şeytan
Doğruysa, denetçi arka plan programı yapmak yerine ön planda başlayacaktır.

Varsayılan: YANLIŞ

gereklidir: Yok hayır.

tanıtıldı: 3.0

minfd'ler
Denetçiden önce mevcut olması gereken minimum dosya tanımlayıcı sayısı,
başarılı bir şekilde başlayın. Yumuşak yükseltmeyi denemek için setrlimit'e bir çağrı yapılacaktır ve
denetim sürecinin zor sınırlarının karşılanması minfd'ler. Zor sınır sadece
süpervizör kök olarak çalıştırılırsa yükseltilir. süpervizör dosya tanımlayıcılarını özgürce kullanır ve
işletim sisteminden elde edilemediğinde bir hata moduna girer, bu nedenle
yürütme sırasında bunların bitmemesini sağlamak için minimum bir değer belirleyebilir.
Bu seçenek özellikle, işlem başına düşük fd sınırına sahip Solaris'te kullanışlıdır.
Varsayılan.

Varsayılan: 1024

gereklidir: Yok hayır.

tanıtıldı: 3.0

minproc'lar
Denetlenmeden önce mevcut olması gereken minimum süreç tanımlayıcı sayısı
başarıyla başlayacaktır. Soft'u yükseltmeye çalışmak için setrlimit'e bir çağrı yapılacaktır.
ve denetlenen sürecin karşılanması gereken katı sınırları minproc'lar. Zor sınır olabilir
yalnızca süpervizör kök olarak çalıştırılırsa yükseltilebilir. süpervizör bir hata moduna girecek
İşletim sistemi süreç tanımlayıcıları bittiğinde, yeterli olduğundan emin olmak yararlıdır
süreç tanımlayıcıları mevcuttur gözetmen başlamak.

Varsayılan: 200

gereklidir: Yok hayır.

tanıtıldı: 3.0

temizleme yok
Denetçinin mevcut herhangi bir şeyi temizlemesini önleyin OTO alt günlük dosyaları başlangıç ​​zamanında.
Hata ayıklama için kullanışlıdır.

Varsayılan: YANLIŞ

gereklidir: Yok hayır.

tanıtıldı: 3.0

çocuk günlüğü
için kullanılan dizin OTO çocuk günlük dosyaları. Bu seçenek değeri içerebilir
%(burada)s, hangi dizine genişler gözetmen yapılandırma dosyası
bulundu.

Varsayılan: Python'un değeri tempfile.get_tempdir()

gereklidir: Yok hayır.

tanıtıldı: 3.0

kullanıcı
Öğretmek gözetmen herhangi bir işlem yapmadan önce kullanıcıları bu UNIX kullanıcı hesabına geçirmek için
anlamlı işlem Kullanıcı yalnızca aşağıdaki durumlarda değiştirilebilir: gözetmen olarak başlatılır
kök kullanıcı. Eğer gözetmen kullanıcıları değiştiremez, yine de devam edecek ancak bir
günlüğe mesaj at kritik ayrıcalıkları bırakamayacağını söyleyen seviye.

Varsayılan: kullanıcıları değiştirmeyin

gereklidir: Yok hayır.

tanıtıldı: 3.0

rehber
Ne zaman gözetmen daemonizes, bu dizine geçin. Bu seçenek şunları içerebilir:
değer %(burada)s, hangi dizine genişler gözetmen yapılandırma
dosya bulundu.

Varsayılan: cd yok

gereklidir: Yok hayır.

tanıtıldı: 3.0

strip_ansi
Tüm ANSI kaçış dizilerini alt günlük dosyalarından çıkarın.

Varsayılan: YANLIŞ

gereklidir: Yok hayır.

tanıtıldı: 3.0

çevre
Formdaki anahtar/değer çiftlerinin listesi KEY="val",KEY2="val2" içine yerleştirilecek olan
gözetmen süreç 'çevresi (ve sonuç olarak tüm alt süreçlerinde'
ortamlar). Bu seçenek değeri içerebilir %(burada)sgenişleyen
süpervizör yapılandırma dosyasının bulunduğu dizin. içeren değerler
alfasayısal olmayan karakterler alıntılanmalıdır (örn. KEY="val:123",KEY2="val,456").
Aksi takdirde, değerlerin alıntılanması isteğe bağlıdır ancak önerilir. Yüzde kaçmak için
karakterler, sadece iki tane kullanın. (Örneğin URI="/first%%20name") not bu alt süreçler
başlatmak için kullanılan kabuğun ortam değişkenlerini devralır gözetmen hariç
burada ve programın içinde geçersiz kılınanlar çevre seçenek. Görmek
alt süreç_ortamı.

Varsayılan: değer yok

gereklidir: Yok hayır.

tanıtıldı: 3.0

tanımlayıcı
RPC arabirimi tarafından kullanılan bu süpervizör işlemi için tanımlayıcı dize.

Varsayılan: süpervizör

gereklidir: Yok hayır.

tanıtıldı: 3.0

[denetçi] Bölüm Örnek E-posta
[denetçi]
günlük dosyası = /tmp/supervisord.log
günlük dosyası_maxbayt = 50MB
logfile_backups=10
loglevel = bilgi
pid dosyası = /tmp/supervisord.pid
nodaemon = yanlış
minfd'ler = 1024
minproc sayısı = 200
umask = 022
kullanıcı = chrism
tanımlayıcı = süpervizör
dizin = / Tmp
nocleanup = doğru
çocuk günlüğüdir = / Tmp
strip_ansi = yanlış
ortam = KEY1="değer1",KEY2="değer2"

[denetçi] Bölüm Ayarlar
Yapılandırma dosyası, aşağıdakiler için ayarları içerebilir: süpervizörctl etkileşimli kabuk
programı. Bu seçenekler aşağıda listelenmiştir.

[denetçi] Bölüm Değerler
sunucu URL'si
Denetlenen sunucuya erişmek için kullanılması gereken URL, ör.
http://localhost: 9001. UNIX etki alanı soketleri için şunu kullanın:
unix:///absolute/path/to/file.sock.

Varsayılan: http://localhost: 9001

gereklidir: Yok hayır.

tanıtıldı: 3.0

kullanıcı adı
Kimlik doğrulamada kullanılmak üzere süpervizör sunucusuna iletilecek kullanıcı adı. Bu
ile aynı olmak kullanıcı adı bağlantı noktası veya UNIX için denetleyici sunucu yapılandırmasından
erişmeye çalıştığınız etki alanı soketi.

Varsayılan: Kullanıcı adı yok

gereklidir: Yok hayır.

tanıtıldı: 3.0

şifre
Kimlik doğrulamada kullanılmak üzere gözetmen sunucusuna iletilecek parola. Bu
açık metin versiyonu olmak şifre için denetleyici sunucu yapılandırmasından
erişmeye çalıştığınız bağlantı noktası veya UNIX etki alanı soketi. Bu değer olarak iletilemez
bir SHA karma. Bu dosyada belirtilen diğer parolalardan farklı olarak,
açık metin.

Varsayılan: Şifre yok

gereklidir: Yok hayır.

tanıtıldı: 3.0

istemi
Denetleyicictl istemi olarak kullanılan dize.

Varsayılan: gözetmen

gereklidir: Yok hayır.

tanıtıldı: 3.0

geçmiş_dosyası
olarak kullanılacak bir yol taleb kalıcı geçmiş dosyası. Bu özelliği şu şekilde etkinleştirirseniz:
bir yol seçerek, denetçictl komutlarınız dosyada tutulacak ve kullanabilirsiniz.
son süpervizörünüzde gerçekleştirdiğiniz komutları çağırmak için readline (örneğin yukarı ok)
oturum, toplantı, celse.

Varsayılan: Dosya yok

gereklidir: Yok hayır.

tanıtıldı: 3.0a5

[denetçi] Bölüm Örnek E-posta
[denetçi]
sunucuurl = unix:///tmp/supervisor.sock
kullanıcı adı = chris
şifre = 123
komut istemi = süpervizörüm

[program:x] Bölüm Ayarlar
Yapılandırma dosyası bir veya daha fazlasını içermelidir program denetçiler için bölümler
hangi programları başlatması ve kontrol etmesi gerektiğini bilmek. Başlık değeri bileşik değerdir.
Bu, "program" kelimesi, ardından doğrudan iki nokta üst üste, ardından program adıdır. bir başlık
değeri [program:foo] "foo" adlı bir programı tanımlar. adı kullanılır
bunun sonucunda oluşturulan süreçleri kontrol eden istemci uygulamaları içinde
yapılandırma. oluşturmak bir hatadır. program adı olmayan bölüm. NS
ad, iki nokta üst üste karakteri veya parantez karakteri içermemelidir. İsmin değeri
değeri olarak kullanılır %(program_adı)s diğer değerler içinde dize ifadesi genişletme
nerede belirtilir.

NOT:
A [program:x] bölüm aslında süpervizöre "homojen bir süreç grubunu" temsil eder
(3.0'dan itibaren). Grubun üyeleri, aşağıdakilerin kombinasyonu ile tanımlanır: sayısal işlemler
ve İşlem adı yapılandırmadaki parametreler. Varsayılan olarak, eğer numprocs ve
process_name varsayılanlarından değişmeden bırakılır, grup şu şekilde temsil edilir:
[program:x] adlandırılacak x ve adlı tek bir işleme sahip olacak x içinde. Bu
eski süpervizör sürümleriyle biraz geriye dönük uyumluluk sağlar;
program bölümlerini homojen süreç grubu tanımları olarak ele almayın.

Ama örneğin, eğer bir [program:foo] ile bölüm sayısal işlemler 3 ve bir
İşlem adı ifadesi %(program_adı)s_%(işlem_num)02d, "foo" grubu
adlı üç süreç içerir. foo_00, foo_01, ve foo_02. Bu şunları mümkün kılar:
tek bir işlem kullanarak çok sayıda benzer işlemi başlatmak [program:x] Bölüm. Tüm
günlük dosyası adları, tüm ortam dizeleri ve programların komutu da şunları içerebilir:
her birine biraz farklı parametreler iletmek için benzer Python dize ifadeleri
proses.

[program:x] Bölüm Değerler
komuta
Bu program başlatıldığında çalıştırılacak komut. Komut şunlardan biri olabilir:
mutlak (örn. /yol/hedef/programadı) veya akraba (örn. program adı). Eğer öyleyse
göreceli, denetçinin çevresi $ PATH yürütülebilir dosya aranacaktır.
Programlar argümanları kabul edebilir, örn. /yol/için/program foo bar. Komut satırı kullanabilir
programa iletmek için içinde boşluk bulunan argümanları gruplamak için çift tırnak;
/yol/hedef/program/ad -p "foo bar". Şuna dikkat edin: komuta Python içerebilir
dize ifadeleri, ör. /yol/hedef/programadı --port=80%(işlem_sayısı)02d genişleyebilir
için /yol/hedef/programadı --port=8000 işlem esnasında. Dize ifadeleri değerlendirilir
anahtarları içeren bir sözlüğe karşı grup ismi, ana makine_düğümü_adı, süreç_sayısı,
program adı, okuyun (denetleyici yapılandırma dosyasının dizini) ve tümü
denetçinin ön ekli ortam değişkenleri ENV_. Kontrollü programlar,
süpervizör, kendi sunucularını şeytanlaştırmaktan sorumlu olduğunu varsaydığından, kendileri cin olamazlar.
alt süreçler (bkz. nondaemonizing_of_subprocesses).

Varsayılan: Standart değil.

gereklidir: Evet.

tanıtıldı: 3.0

İşlem adı
Bunun için gözetmen işlem adını oluşturmak için kullanılan bir Python dizesi ifadesi
işlem. Değiştirmediğiniz sürece genellikle bunu ayarlama konusunda endişelenmenize gerek yoktur.
sayısal işlemler. dize ifadesi, aşağıdakileri içeren bir sözlüğe karşı değerlendirilir:
grup ismi, ana makine_düğümü_adı, süreç_sayısı, program adı, ve okuyun (dizin
süpervizör yapılandırma dosyası).

Varsayılan: %(program_adı)s

gereklidir: Yok hayır.

tanıtıldı: 3.0

sayısal işlemler
Süpervizör, bu programın numprocs tarafından adlandırıldığı kadar çok örneğini başlatır. Not
numprocs > 1 ise, İşlem adı ifade içermelidir %(işlem_sayısı)s (veya herhangi biri
içeren diğer geçerli Python dizesi ifadesi süreç_sayısı) içinde.

Varsayılan: 1

gereklidir: Yok hayır.

tanıtıldı: 3.0

numprocs_start
sayıyı hesaplamak için kullanılan bir tamsayı ofseti sayısal işlemler başlar.

Varsayılan: 0

gereklidir: Yok hayır.

tanıtıldı: 3.0

öncelik
Başlatma ve kapatma sırasında programın göreli önceliği. Daha düşük
öncelikler, başlangıçta ilk başlayan ve en son kapanan programları ve ne zaman kapatıldığını gösterir.
toplama komutları çeşitli istemcilerde kullanılır (örneğin "tümünü başlat"/"tümünü durdur"). Daha yüksek
öncelikler, en son başlayan ve ilk kapanan programları gösterir.

Varsayılan: 999

gereklidir: Yok hayır.

tanıtıldı: 3.0

otomatik başlatma
Eğer true ise, bu program süpervizör başlatıldığında otomatik olarak başlayacaktır.

Varsayılan: doğru

gereklidir: Yok hayır.

tanıtıldı: 3.0

başlangıç ​​saniyesi
Bir başlangıçtan sonra programın çalışmaya devam etmesi gereken toplam saniye sayısı
başlangıcı başarılı sayın (süreci BAŞLANGIÇ devlete
KOŞU durum). Ayarlanır 0 programın herhangi bir süre için çalışmaya devam etmesine gerek olmadığını belirtmek için
belirli bir süre.

NOT:
Bir işlem "beklenen" bir çıkış koduyla çıksa bile (bkz. çıkış kodları), başlangıç
süreç daha hızlı çıkarsa yine de bir başarısızlık olarak kabul edilecektir. başlangıç ​​saniyesi.

Varsayılan: 1

gereklidir: Yok hayır.

tanıtıldı: 3.0

başlangıç ​​denemeleri
Seri başarısızlık denemelerinin sayısı gözetmen yapmaya çalışırken izin verecek
pes etmeden ve süreci bir döngüye sokmadan önce programı başlatın. FATAL durum. Görmek
açıklaması için process_states FATAL devlet.

Varsayılan: 3

gereklidir: Yok hayır.

tanıtıldı: 3.0

otomatik yeniden başlat
eğer belirtir gözetmen olduğunda çıkarsa bir işlemi otomatik olarak yeniden başlatmalıdır.
içinde KOŞU durum. biri olabilir yanlış, beklenmedikya da gerçek. Eğer yanlış, süreç
otomatik olarak yeniden başlatılmayacaktır. Eğer beklenmedikolduğunda süreç yeniden başlatılacaktır.
program, bununla ilişkili çıkış kodlarından biri olmayan bir çıkış koduyla çıkar.
süreç yapılandırması (bkz. çıkış kodları). eğer gerçek, süreç koşulsuz olacak
çıkış koduna bakılmaksızın, çıktığında yeniden başlatılır.

NOT:
otomatik yeniden başlat olup olmadığını kontrol eder gözetmen çıkarsa bir programı otomatik olarak yeniden başlatır
başarıyla başlatıldıktan sonra (süreç KOŞU durum).

gözetmen süreç başladığında farklı bir yeniden başlatma mekanizmasına sahiptir
(süreç şu anda BAŞLANGIÇ durum). İşlem başlatma sırasında yeniden denemeler
tarafından kontrol başlangıç ​​saniyesi ve başlangıç ​​denemeleri.

Varsayılan: beklenmedik

gereklidir: Yok hayır.

tanıtıldı: 3.0

çıkış kodları
Bu program için kullanılan "beklenen" çıkış kodlarının listesi otomatik yeniden başlat. Eğer
otomatik yeniden başlat parametre şu şekilde ayarlanmıştır: beklenmedik, ve işlem şundan başka bir şekilde çıkar:
bir süpervizör durdurma talebi sonucunda, gözetmen varsa işlemi yeniden başlatır
bu listede tanımlı olmayan bir çıkış koduyla çıkar.

Varsayılan: 0,2

gereklidir: Yok hayır.

tanıtıldı: 3.0

stop sinyali
Durdurma istendiğinde programı öldürmek için kullanılan sinyal. Bu herhangi bir TERM olabilir,
HUP, INT, QUIT, KILL, USR1 veya USR2.

Varsayılan: TERİM

gereklidir: Yok hayır.

tanıtıldı: 3.0

bekleme saniyeleri
İşletim sisteminin bir SIGCHILD'i geri döndürmesi için beklenecek saniye sayısı gözetmen sonra
programa bir durdurma sinyali gönderildi. Bu saniye sayısı daha önce geçerse
gözetmen süreçten bir SIGCHILD alır, gözetmen onu öldürmeye çalışacak
son bir SIGKILL ile.

Varsayılan: 10

gereklidir: Yok hayır.

tanıtıldı: 3.0

durdurma grubu
Doğruysa, bayrak süpervizörün tüm süreç grubuna durdurma sinyali göndermesine neden olur.
ve ima eder öldürme grubu doğru. Bu, hata ayıklamada Flask gibi programlar için kullanışlıdır.
çocuklarına durma sinyalleri yaymayan ve onları öksüz bırakan mod.

Varsayılan: YANLIŞ

gereklidir: Yok hayır.

tanıtıldı: 3.0b1

öldürme grubu
Doğruysa, SIGKILL'i sonlandırmak için programa göndermeye başvururken, onu kendi sunucusuna gönderin.
bunun yerine tüm süreç grubu, çocuklarına da bakmakta, örneğin
kullanan Python programları çoklu işlem.

Varsayılan: YANLIŞ

gereklidir: Yok hayır.

tanıtıldı: 3.0a11

kullanıcı
Öğretmek gözetmen çalıştıran hesap olarak bu UNIX kullanıcı hesabını kullanmak için
programı. Kullanıcı yalnızca aşağıdaki durumlarda değiştirilebilir: gözetmen kök kullanıcı olarak çalıştırılır. Eğer
gözetmen belirtilen kullanıcıya geçiş yapılamıyor, program başlatılmayacak.

NOT:
Kullanıcı kullanılarak değiştirilecektir setuid bir tek. Bu, bir oturum açma kabuğu başlatmaz ve
gibi ortam değişkenlerini değiştirmez KULLANICI or ANA SAYFA. Görmek
ayrıntılar için subprocess_environment.

Varsayılan: Kullanıcıları değiştirmeyin

gereklidir: Yok hayır.

tanıtıldı: 3.0

yönlendirme_stderr
Doğruysa, işlemin stderr çıktısının geri gönderilmesine neden olun. gözetmen stdout'unda
dosya tanımlayıcısı (UNIX kabuk terimlerinde, bu, yürütmenin eşdeğeridir) /program/program
2> & 1).

NOT:
Kurma yönlendirme_stderr=doğru bir bölgesindeki [etkinlik dinleyicisi:x] Bölüm. olay dinleyicileri
kullanım stdout'u ve stdin Ile iletişim kurmak gözetmen. Eğer Stderr yönlendirilir,
Çıktı Stderr eventlistener protokolüne müdahale edecektir.

Varsayılan: YANLIŞ

gereklidir: Yok hayır.

tanıtıldı: 3.0, 2.0'ların yerini alır log_stdout ve log_stderr

stdout_logfile
İşlem stdout çıktısını bu dosyaya koyun (ve yönlendirme_stderr doğruysa, ayrıca
stderr çıktısı bu dosyada). Eğer stdout_logfile ayarlanmamış veya ayarlanmış OTO, süpervizör
otomatik olarak bir dosya konumu seçecektir. Bu ayarlandıysa YOK, denetçi olacak
günlük dosyası oluşturma. OTO günlük dosyaları ve yedekleri silindiğinde gözetmen
yeniden başlar. NS stdout_logfile değer, Python dizesi ifadeleri içerebilir.
anahtarları içeren bir sözlüğe karşı değerlendirilir grup ismi, ana makine_düğümü_adı,
süreç_sayısı, program adı, ve okuyun (denetleyici yapılandırma dosyasının dizini).

NOT:
İki işlemin tek bir günlük dosyasını paylaşması mümkün değildir (stdout_logfile)
rotasyon ne zaman (stdout_logfile_maxbytes) etkin. Bu dosyayla sonuçlanacak
bozuk olmak.

Varsayılan: OTO

gereklidir: Yok hayır.

tanıtıldı: 3.0, 2.0'ların yerini alır kayıt dosyası

stdout_logfile_maxbytes
tarafından tüketilebilecek maksimum bayt sayısı stdout_logfile döndürülmeden önce
("KB", "MB" ve "GB" gibi son ek çarpanları değerde kullanılabilir). Bunu ayarla
Sınırsız bir günlük boyutunu belirtmek için değeri 0'a çıkarın.

Varsayılan50MB

gereklidir: Yok hayır.

tanıtıldı: 3.0, 2.0'ların yerini alır günlük dosyası_maxbytes

stdout_logfile_backups
Sayısı stdout_logfile işlem stdout günlüğünden kaynaklanan yedekler
dosya döndürme. 0 olarak ayarlanırsa, hiçbir yedekleme tutulmaz.

Varsayılan: 10

gereklidir: Yok hayır.

tanıtıldı: 3.0, 2.0'ların yerini alır günlük dosyası_yedekleri

stdout_capture_maxbytes
İşlem "stdout yakalama modunda"yken FIFO'yu yakalamak için yazılan maksimum bayt sayısı
(bkz. yakalama_modu). Bir tamsayı olmalıdır ("KB", "MB" ve "GB" gibi son ek çarpanları
değerde kullanılabilir). Bu değer 0 ise işlem yakalama modu kapalı olacaktır.

Varsayılan: 0

gereklidir: Yok hayır.

tanıtıldı: 3.0, 2.0'ların yerini alır günlük dosyası_yedekleri

stdout_events_enabled
Eğer true ise, proses kendisine yazdığında PROCESS_LOG_STDOUT olayları yayılacaktır.
stdout dosya tanımlayıcısı. Olaylar, yalnızca dosya tanıtıcı
veri alındığında yakalama modunda (bkz. yakalama_modu).

Varsayılan: 0

gereklidir: Yok hayır.

tanıtıldı: 3.0a7

stderr_log dosyası
İşlem stderr çıktısını bu dosyaya koyun yönlendirme_stderr doğru. kabul eder
ile aynı değer türleri stdout_logfile ve aynı Python dizesi ifadelerini içerebilir.

NOT:
İki işlemin tek bir günlük dosyasını paylaşması mümkün değildir (stderr_log dosyası)
rotasyon ne zaman (stderr_logfile_maxbytes) etkin. Bu dosyayla sonuçlanacak
bozuk olmak.

Varsayılan: OTO

gereklidir: Yok hayır.

tanıtıldı: 3.0

stderr_logfile_maxbytes
Günlük dosyası döndürmeden önceki maksimum bayt sayısı stderr_log dosyası. kabul eder
ile aynı değer türleri stdout_logfile_maxbytes.

Varsayılan50MB

gereklidir: Yok hayır.

tanıtıldı: 3.0

stderr_logfile_backups
İşlem stderr günlük dosyasının döndürülmesi sonucunda elde tutulacak yedekleme sayısı.
0 olarak ayarlanırsa, hiçbir yedekleme tutulmaz.

Varsayılan: 10

gereklidir: Yok hayır.

tanıtıldı: 3.0

stderr_capture_maxbytes
İşlem "stderr yakalama modunda"yken FIFO'yu yakalamak için yazılan maksimum bayt sayısı
(bkz. yakalama_modu). Bir tamsayı olmalıdır ("KB", "MB" ve "GB" gibi son ek çarpanları
değerde kullanılabilir). Bu değer 0 ise işlem yakalama modu kapalı olacaktır.

Varsayılan: 0

gereklidir: Yok hayır.

tanıtıldı: 3.0

stderr_events_enabled
True ise, proses kendi bilgisayarına yazdığında PROCESS_LOG_STDERR olayları yayınlanır.
stderr dosya tanımlayıcısı. Olaylar, yalnızca dosya tanıtıcı
veri alındığında yakalama modunda (bkz. yakalama_modu).

Varsayılan: YANLIŞ

gereklidir: Yok hayır.

tanıtıldı: 3.0a7

çevre
Formdaki anahtar/değer çiftlerinin listesi KEY="val",KEY2="val2" içine yerleştirilecek olan
çocuk süreci ortamı. Ortam dizesi Python dizesi içerebilir
içeren bir sözlüğe karşı değerlendirilecek ifadeler grup ismi,
ana makine_düğümü_adı, süreç_sayısı, program adı, ve okuyun (denetçinin dizini
yapılandırma dosyası). Alfasayısal olmayan karakterler içeren değerler alıntılanmalıdır (örn.
KEY="val:123",KEY2="val,456"). Aksi takdirde, değerleri alıntılamak isteğe bağlıdır, ancak
önerilir. not alt işlemin, ortamın ortam değişkenlerini devralacağını
Shell, burada geçersiz kılınanlar dışında "supervisord" başlatırdı. Görmek
alt süreç_ortamı.

Varsayılan: Ekstra ortam yok

gereklidir: Yok hayır.

tanıtıldı: 3.0

rehber
olduğu bir dizini temsil eden bir dosya yolu gözetmen geçici olarak chdir olmalı
çocuğu infaz etmeden önce.

Varsayılan: Chdir yok (denetçinin mirasını alır)

gereklidir: Yok hayır.

tanıtıldı: 3.0

Umask
Sürecin umask'ını temsil eden sekizli bir sayı (örn. 002, 022).

Varsayılan: Özel bir umask yok (denetçinin mirasçısı)

gereklidir: Yok hayır.

tanıtıldı: 3.0

sunucu URL'si
Ortamda alt süreç sürecine şu şekilde geçirilen URL SUPERVISOR_SERVER_URL
(görmek süpervizör.childutils) alt işlemin ile kolayca iletişim kurmasını sağlamak için
dahili HTTP sunucusu. Sağlanırsa, aynı sözdizimine ve yapıya sahip olmalıdır.
[denetçi] aynı adı taşıyan bölüm seçeneği. Bu, OTOMATİK olarak ayarlanmışsa veya ayarlanmamışsa,
süpervizör otomatik olarak bir sunucu URL'si oluşturacak ve bir sunucuyu tercih edecektir.
Bir internet soketinde dinleyen yerine UNIX etki alanı soketlerini dinleyen.

Varsayılan: OTO

gereklidir: Yok hayır.

tanıtıldı: 3.0

[program:x] Bölüm Örnek E-posta
[program:kedi]
komut =/bin/kedi
işlem_adı=%(program_adı)s
numprocs=1
dizin=/ Tmp
umask=022
Öncelikli = 999
autostart = true
otomatik yeniden başlatma=beklenmedik
başlangıç ​​saniye = 10
başlangıç ​​denemeleri=3
çıkış kodları = 0,2
stop sinyali=TERM
bekleme saniyesi = 10
stopasgroup=yanlış
killasgroup=yanlış
kullanıcı = mesih
yönlendirme_stderr=yanlış
stdout_logfile=/a/yol
stdout_logfile_maxbytes=1 MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1 MB
stdout_events_enabled=yanlış
stderr_logfile=/a/yol
stderr_logfile_maxbytes=1 MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1 MB
stderr_events_enabled=yanlış
ortam=A="1",B="2"
serverurl=OTOMATİK

[Dahil etmek] Bölüm Ayarlar
The süpervizör.conf dosya adlı bir bölüm içerebilir [Dahil etmek]. Eğer yapılandırma
dosya bir içerir [Dahil etmek] bölümünde, "dosyalar" adında tek bir anahtar içermelidir. NS
bu anahtardaki değerler, dahil edilecek diğer yapılandırma dosyalarını belirtir.
konfigürasyonu.

[Dahil etmek] Bölüm Değerler
Dosyaları
Boşlukla ayrılmış bir dosya küresi dizisi. Her dosya küresi mutlak veya göreli olabilir.
Dosya küresi göreceliyse, dosyanın konumuna göreli olarak kabul edilir.
içeren yapılandırma dosyası. Bir "glob", bir
Unix kabuğu tarafından kullanılan kurallara göre belirtilen desen. Tilde genişletme yok
bitti, ama *, ?, ve ile ifade edilen karakter aralıkları [] doğru eşleştirilecektir.
Dahil edilen dosyalardan özyinelemeli eklemeler desteklenmez.

Varsayılan: Varsayılan yok (gerekli)

gereklidir: Evet.

tanıtıldı: 3.0

[Dahil etmek] Bölüm Örnek E-posta
[Dahil etmek]
dosyalar = /an/absolute/filename.conf /an/absolute/*.conf foo.conf yapılandırma??.conf

[grup:x] Bölüm Ayarlar
"Homojen" süreç gruplarını (diğer adıyla "programlar") bir arada gruplandırmak genellikle yararlıdır.
Süpervizörden bir birim olarak kontrol edilebilmeleri için "heterojen" süreç grubu
çeşitli kontrolör arayüzleri.

Programları bir birim olarak ele alabilmeniz için bir gruba yerleştirmek için, bir [grup:x] Bölüm
yapılandırma dosyanızda. Grup başlığı değeri bir bileşiktir. bu kelime
"grup", ardından doğrudan iki nokta üst üste, ardından grup adı. Bir başlık değeri [grup:foo]
"foo" adında bir grubu tanımlar. Ad, istemci uygulamalarında kullanılır
Bu yapılandırmanın bir sonucu olarak oluşturulan süreçleri kontrol eden. O bir
oluşturmak için hata Grup adı olmayan bölüm. Ad bir içermemelidir
iki nokta üst üste karakteri veya bir parantez karakteri.

bir için [grup:x], bir veya daha fazla olmalı [program:x] başka yerlerdeki bölümler
yapılandırma dosyası ve grubun bunlara adla başvurması gerekir. programlar değeri.

"Homojen" süreç grupları (program bölümleriyle temsil edilir) bir
aracılığıyla "heterojen" grup [grup:x] bölümün programlar çizgi, homojen gruplar
program bölümü tarafından ima edilenler, süpervizörde çalışma zamanında mevcut olmayacaktır. Bunun yerine, tüm
homojen grupların her birine ait süreçler,
heterojen grup. Örneğin, aşağıdaki grup yapılandırması verildiğinde:

[grup:foo]
programlar=bar,baz
Öncelikli = 999

Yukarıda verilenler göz önüne alındığında, süpervizör başlangıcında, bar ve baz homojen gruplar olmaz
var ve onların altında olacak süreçler şimdi sisteme taşınacak. foo
grup.

[grup:x] Bölüm Değerler
programlar
Program adlarının virgülle ayrılmış listesi. Listelenen programlar üye olur
Grubun.

Varsayılan: Varsayılan yok (gerekli)

gereklidir: Evet.

tanıtıldı: 3.0

öncelik
Bir öncelik numarasına benzer bir [program:x] gruba atanan öncelik değeri.

Varsayılan: 999

gereklidir: Yok hayır.

tanıtıldı: 3.0

[grup:x] Bölüm Örnek E-posta
[grup:foo]
programlar=bar,baz
Öncelikli = 999

[fcgi programı:x] Bölüm Ayarlar
Süpervizör şu grupları yönetebilir: FastCGI hepsi aynı sokette dinleyen işlemler.
Şimdiye kadar FastCGI için dağıtım esnekliği sınırlıydı. Tam işlem almak için
yönetim, mod_fastcgi'yi Apache altında kullanabilirsiniz, ancak daha sonra Apache'nin
bağlantı başına bir işlem veya iş parçacığının verimsiz eşzamanlılık modeli. Ek olarak
daha fazla CPU ve bellek kaynağı gerektiren, bağlantı modeli başına işlem/iş parçacığı olabilir
yavaş bir kaynak tarafından hızla doyurulur ve diğer kaynaklara hizmet verilmesi engellenir. İçinde
lighttpd veya nginx gibi daha yeni olay odaklı web sunucularından yararlanmak için
yerleşik bir süreç yöneticisi eklemeyin, cgi-fcgi gibi komut dosyaları kullanmanız gerekiyordu veya
spawn-fcgi. Bunlar, süpervizör gibi bir süreç yöneticisi ile birlikte kullanılabilir.
veya daemontools, ancak her FastCGI alt işleminin kendi soketine bağlanmasını gerektirir. NS
bunun dezavantajları şunlardır: gereksiz yere karmaşık web sunucusu yapılandırması, zarif olmayan
yeniden başlar ve hata toleransı azalır. Konfigüre edilecek daha az soket ile web sunucusu
FastCGI süreçleri grupları soketleri paylaşabiliyorsa, konfigürasyonlar çok daha küçüktür. Paylaşılan
soketler, soket ana süreç tarafından bağlı kaldığı için zarif yeniden başlatmalara izin verir
alt süreçlerden herhangi biri yeniden başlatılırken. Son olarak, paylaşılan soketler daha fazladır.
hataya dayanıklı çünkü belirli bir işlem başarısız olursa, diğer işlemler hizmet vermeye devam edebilir
gelen bağlantılar.

Entegre FastCGI yumurtlama desteği ile Supervisor size her iki dünyanın da en iyisini sunar.
Soketleri paylaşan FastCGI süreçleri gruplarıyla tam özellikli süreç yönetimi elde edersiniz
belirli bir web sunucusuna bağlı olmadan. Endişelerin temiz bir ayrımı,
web sunucusunun ve süreç yöneticisinin en iyi yaptıkları şeyi yapmasına izin verir.

NOT:
Supervisor'daki soket yöneticisi, orijinal olarak FastCGI işlemlerini desteklemek için geliştirilmiştir.
ancak FastCGI ile sınırlı değildir. Diğer protokoller de özel bir zorunluluk olmaksızın kullanılabilir.
yapılandırma. Bir dosya tanıtıcısından açık bir sokete erişebilen herhangi bir program (örn.
ile soket.fromfd Python'da) soket yöneticisini kullanabilir. Süpervizör
otomatik olarak soketi yarat, bağla ve ilk çocuğu çatallamadan önce dinle.
grup. Soket, dosya tanımlayıcı numarasındaki her çocuğa iletilecektir. 0 (sıfır).
Gruptaki son çocuk çıktığında Supervisor soketi kapatacaktır.

Mevcut tüm seçenekler [program:x] bölümler de saygı görüyor fcgi programı
bölümleri.

[fcgi programı:x] Bölüm Değerler
[fcgi programı:x] bölümlerin tek bir anahtarı vardır. [program:x] bölümleri yoktur.

soket
Bu program için FastCGI soketi, TCP veya UNIX etki alanı soketi. TCP soketleri için,
bu formatı kullanın: tcp://yerel ana bilgisayar:9002. UNIX etki alanı soketleri için şunu kullanın:
unix:///absolute/path/to/file.sock. Dize ifadeleri, bir
"program_name" ve "bura" anahtarlarını içeren sözlük (programın dizini
süpervizör yapılandırma dosyası).

Varsayılan: Standart değil.

gereklidir: Evet.

tanıtıldı: 3.0

soket_sahibi
UNIX etki alanı soketleri için bu parametre, kullanıcı ve grubu belirtmek için kullanılabilir.
FastCGI soketi. Bir UNIX kullanıcı adı (örneğin chrism) veya bir UNIX kullanıcı adı ve grubu olabilir
iki nokta üst üste ile ayrılır (örn. chrism:wheel).

Varsayılan: fcgi programı için kullanıcı ve grup setini kullanır

gereklidir: Yok hayır.

tanıtıldı: 3.0

soket_mode
UNIX etki alanı yuvaları için bu parametre, izin modunu belirtmek için kullanılabilir.

Varsayılan: 0700

gereklidir: Yok hayır.

tanıtıldı: 3.0

Danışmak [program:x] Bölüm Ayarlar izin verilen diğer anahtarlar için yukarıdaki kısıtlamaları delta
ve eklemeler.

[fcgi programı:x] Bölüm Örnek E-posta
[fcgi programı:fcgiprogramadı]
komut=/usr/bin/example.fcgi
soket=unix:///var/run/supervisor/%(program_name)s.sock
soket_sahibi=Christma
soket_modu=0700
süreç_adı=%(program_adı)s_%(işlem_num)02d
numprocs=5
dizin=/ Tmp
umask=022
Öncelikli = 999
autostart = true
otomatik yeniden başlatma=beklenmedik
başlangıç ​​saniye = 1
başlangıç ​​denemeleri=3
çıkış kodları = 0,2
stop sinyali=ÇIK
stopasgroup=yanlış
killasgroup=yanlış
bekleme saniyesi = 10
kullanıcı = mesih
yönlendirme_stderr=doğru
stdout_logfile=/a/yol
stdout_logfile_maxbytes=1 MB
stdout_logfile_backups=10
stdout_events_enabled=yanlış
stderr_logfile=/a/yol
stderr_logfile_maxbytes=1 MB
stderr_logfile_backups=10
stderr_events_enabled=yanlış
ortam=A="1",B="2"
serverurl=OTOMATİK

[etkinlik dinleyicisi:x] Bölüm Ayarlar
Supervisor, uzmanlaşmış homojen süreç gruplarının ("olay dinleyici havuzları")
konfigürasyon dosyasında tanımlanmıştır. Bu havuzlar, amaçlanan süreçleri içerir.
süpervizörün olay sisteminden olay bildirimlerini alır ve yanıtlar. için etkinliklere bakın
olayların nasıl çalıştığına ve şu şekilde ilan edilebilecek programların nasıl uygulanacağına dair bir açıklama
olay dinleyicileri

Tüm seçeneklerin mevcut olduğunu unutmayın. [program:x] bölümlere eventlistener tarafından saygı duyulur
bölümler dışında için stdout_capture_maxbytes ve stderr_capture_maxbytes (olay dinleyicileri
işlem iletişim olaylarını yayamaz, bkz. yakalama_modu).

[etkinlik dinleyicisi:x] Bölüm Değerler
[etkinlik dinleyicisi:x] bölümlerin birkaç anahtarı vardır. [program:x] bölümleri yoktur.

tampon_size
Olay dinleyici havuzunun olay kuyruğu arabelleği boyutu. Bir dinleyici havuzunun olay arabelleği olduğunda
taştı (bir olay dinleyici havuzu tüm bunlara ayak uyduramadığında olabileceği gibi)
gönderilen olaylar), arabellekteki en eski olay atılır.

olaylar
Bu dinleyicinin "ilgilendiği" olay türü adlarının virgülle ayrılmış listesi
için bildirim alma (geçerli olay türü adlarının listesi için olay_tiplerine bakın).

sonuç_işleyicisi
A pkg_resources giriş nokta dizi bu bir Python çağrılabilir olarak çözülür. Varsayılan
değer şudur süpervizör.dispatchers:default_handler. Alternatif bir sonuç belirtme
işleyici, yapılması gereken çok nadir bir şeydir ve sonuç olarak, nasıl oluşturulacağı
belgelenmemiş.

Danışmak [program:x] Bölüm Ayarlar izin verilen diğer anahtarlar için yukarıdaki kısıtlamaları delta
ve eklemeler.

[etkinlik dinleyicisi:x] Bölüm Örnek E-posta
[eventlistener:eventlistenername]
komut=/bin/eventlistener
süreç_adı=%(program_adı)s_%(işlem_num)02d
numprocs=5
olaylar=PROCESS_STATE
tampon_boyutu=10
dizin=/ Tmp
umask=022
öncelik=-1
autostart = true
otomatik yeniden başlatma=beklenmedik
başlangıç ​​saniye = 1
başlangıç ​​denemeleri=3
çıkış kodları = 0,2
stop sinyali=ÇIK
bekleme saniyesi = 10
stopasgroup=yanlış
killasgroup=yanlış
kullanıcı = mesih
yönlendirme_stderr=yanlış
stdout_logfile=/a/yol
stdout_logfile_maxbytes=1 MB
stdout_logfile_backups=10
stdout_events_enabled=yanlış
stderr_logfile=/a/yol
stderr_logfile_maxbytes=1 MB
stderr_logfile_backups=10
stderr_events_enabled=yanlış
ortam=A="1",B="2"
serverurl=OTOMATİK

[rpc arayüzü:x] Bölüm Ayarlar
Ekleme rpcarayüz:x yapılandırma dosyasındaki ayarlar yalnızca
süpervizörü ek özel davranışla genişletmek istiyorum.

Örnek yapılandırma dosyasında adlı bir bölüm var. [rpcinterface:denetçi].
Varsayılan olarak aşağıdaki gibi görünür.

[rpcinterface:denetçi]
süpervizör.rpcinterface_factory = süpervizör.rpcinterface:make_main_rpcinterface

The [rpcinterface:denetçi] Bölüm , eğer mülteci statüleri sona erdirilmemişse Amerika'ya geldikten bir yıl sonra standart konfigürasyonunda kal
düzgün çalışması için süpervizör kurulumu. Süpervizörün bir şey yapmasını istemiyorsanız
kutudan çıktığı gibi yapmaz, bu tür hakkında bilmeniz gereken tek şey bu
Bölüm.

Ancak, süpervizörü özelleştirmek için rpc arabirim ad alanları eklemek isterseniz,
ek ekleyebilir [rpinterface:foo] "foo"nun ad alanını temsil ettiği bölümler
arayüz (web kökünden) ve tarafından adlandırılan değer süpervizör.rpcinterface_factory
tek bir kabul eden bir işlev imzasına sahip olması gereken fabrika tarafından çağrılabilir
konumsal argüman gözetmen ve gerçekleştirmek için gerektiği kadar anahtar kelime bağımsız değişkeni
yapılandırma. içinde tanımlanan herhangi bir ekstra anahtar/değer çifti [rpc arayüzü:x] bölüm olacak
fabrikaya anahtar kelime argümanları olarak iletilebilir.

Burada oluşturulan bir fabrika işlevi örneği verilmiştir. __init__.py Python'un dosyası
paket benim paketim.

my.package.rpcinterface'den AnotherRPCInterface'i içe aktarın

def make_another_rpcinterface(süpervizör, **config):
yeniden deneme = int(config.get('tekrar deneme', 0))
other_rpc_interface = AnotherRPCInterface(süpervizör, yeniden denemeler)
başka bir_rpc_interface döndür

Ve yapılandırma dosyasındaki bir bölüm, onu yapılandırmak içindir.

[rpcinterface:başka]
süpervizör.rpcinterface_factory = my.package:make_another_rpcinterface
yeniden deneme = 1

[rpc arayüzü:x] Bölüm Değerler
süpervizör.rpcinterface_factory
pkg_resources RPC arabiriminizin fabrika işlevine "giriş noktası" noktalı ad.

VarsayılanN / A

gereklidir: Yok hayır.

tanıtıldı: 3.0

[rpc arayüzü:x] Bölüm Örnek E-posta
[rpcinterface:başka]
süpervizör.rpcinterface_factory = my.package:make_another_rpcinterface
yeniden deneme = 1

alt süreçler
gözetmen'nin birincil amacı, içindeki verilere dayalı süreçler oluşturmak ve yönetmektir.
yapılandırma dosyası. Bunu alt süreçler oluşturarak yapar. tarafından oluşturulan her bir alt süreç
süpervizör, tüm ömrü boyunca süpervizör tarafından yönetilir (gözetmen olduğunu
oluşturduğu her işlemin ana süreci). Bir çocuk öldüğünde, amir bilgilendirilir.
aracılığıyla ölümü SIGCHLD sinyali verir ve uygun işlemi gerçekleştirir.

şeytanlaştırmayan of alt süreçler
Süpervizör altında çalıştırılması amaçlanan programlar kendilerini şeytanlaştırmamalıdır. Bunun yerine, onlar
ön planda çalıştırılmalıdır. Çıktıkları terminalden ayrılmamalıdırlar.
başladı.

Bir programın ön planda çalışıp çalışmayacağını anlamanın en kolay yolu şu komutu çalıştırmaktır:
programı bir kabuk isteminden çağırır. Size terminalin kontrolünü geri veriyorsa,
ama çalışmaya devam ediyor, kendini şeytanlaştırıyor ve bu neredeyse kesinlikle yanlış olacak
süpervizör altında çalıştırmanın yolu. Esasen sizi gerektiren bir komutu çalıştırmak istiyorsunuz.
bastırmak Ctrl-C terminalin kontrolünü geri almak için. Size bir kabuk istemi geri verirse
basmaya gerek kalmadan çalıştırdıktan sonra Ctrl-C, süpervizör altında yararlı değildir. Tüm
programların ön planda çalıştırılacak seçenekleri vardır ancak bunu yapmanın "standart bir yolu" yoktur;
her programın belgelerini okumanız gerekir.

Aşağıda, ortak programları başlattığı bilinen yapılandırma dosyası örnekleri verilmiştir.
Süpervizör altındaki "ön plan" modu.

Örnekler of Programı Konfigürasyonlar
İşte bazı "gerçek dünya" program yapılandırma örnekleri:

Apache 2.2.6
[program:apache2]
command=/path/to/httpd -c "ErrorLog /dev/stdout" -DFOREGROUND
yönlendirme_stderr=doğru

İki Zope 2.X durumlarda ve bir SIFIR sunucu
[program:zeo]
komut=/yol/to/runzeo
Öncelikli = 1

[program:zope1]
komut=/yol/to/örnek/home/bin/runzope
Öncelikli = 2
yönlendirme_stderr=doğru

[program:zope2]
komut=/yol/to/başka/örnek/home/bin/runzope
Öncelikli = 2
yönlendirme_stderr=doğru

postgres 8.X
[program:postgres]
komut=/yol/to/postmaster
; "hızlı" kapatma sinyalini kullanıyoruz SIGINT
stop sinyali=INT
yönlendirme_stderr=doğru

OpenLDAP şaplak
[program:tokat]
komut=/path/to/slapd -f /path/to/slapd.conf -h ldap://0.0.0.0:8888
yönlendirme_stderr=doğru

Diğer Örnekler
Hizmetleri başlatmak için kullanılabilecek diğer kabuk komut dosyası örnekleri gözetmen yapabilmek
bulunabilir http://thedjbway.b0llix.net/services.html. Bu örnekler aslında
Daemon araçları ama öncül süpervizör için aynıdır.

Ön planda çeşitli programları başlatmak için başka bir tarif koleksiyonu mevcuttur
itibaren http://smarden.org/runit/runscripts.html.

pidproxy Programı
Bazı işlemler (gibi mysqld) tarafından oluşturulan gerçek sürece gönderilen sinyalleri yoksay
gözetmen. Bunun yerine, bu tür programlar tarafından "özel" bir iş parçacığı/işlem oluşturulur.
sinyallerin işlenmesinden sorumludur. Bu sorunlu çünkü gözetmen yapabilmek
sadece kendi yarattığı bir süreci öldürür. tarafından oluşturulan bir süreç ise gözetmen oluşturur
kendi alt süreçleri, gözetmen onları öldüremezsin.

Neyse ki, bu tür programlar tipik olarak aşağıdakileri içeren bir "pidfile" yazar.
"özel" süreç' PID'sidir ve süreci öldürmek için okunmalı ve kullanılmalıdır. Olarak
bu durum için bir geçici çözüm, özel bir pidproxy program bu tür başlatmaları işleyebilir
süreçlerin NS pidproxy program, bir süreci başlatan küçük bir ayardır ve
bir sinyalin alınması, sinyali bir pid dosyasında sağlanan pid'e gönderir. Bir örnek
pidproxy etkinleştirilmiş bir program için yapılandırma programı girişi aşağıda verilmiştir.

[program: mysql]
komut=/path/to/pidproxy /path/to/pidfile /path/to/mysqld_safe

The pidproxy program yapılandırmanızın içine konur $BINDIR süpervizör kurulduğunda
(bu bir "konsol komut dosyasıdır").

alt süreç çevre
Alt işlemler, işlemi başlatmak için kullanılan kabuğun ortamını devralır. gözetmen
programı. Birkaç ortam değişkeni tarafından ayarlanacaktır gözetmen çocuğun içinde kendini
ortamı da dahil olmak üzere SUPERVISOR_ENABLED (işlemin altında olduğunu gösteren bir bayrak
süpervizör kontrolü), SUPERVISOR_PROCESS_NAME (için yapılandırma dosyası tarafından belirtilen işlem adı
Bu süreç) ve SUPERVISOR_GROUP_NAME (için yapılandırma dosyası tarafından belirtilen işlem grubu adı
çocuk süreci).

Bu ortam değişkenleri, [denetçi] bölüm yapılandırması
adlı seçenek çevre (tüm alt süreçler için geçerlidir) veya per- [program:x]
Bölüm çevre yapılandırma seçeneği (yalnızca içinde belirtilen alt işlem için geçerlidir)
[program:x] Bölüm). Bu "ortam" ayarları ilavedir. Başka bir deyişle, her
alt işlemin ortamı şunlardan oluşacaktır:
Denetimi başlatmak için kullanılan kabuk içinde ayarlanan ortam değişkenleri...

... tarafından eklenen/geçersiz kılınan ...

Kendi ID’n ile mağazalarını oluştur the çevre değişkenler set içinde the çevre global
yapılandırma seçeneği ...

... tarafından eklenen/geçersiz kılınan ...

Kendi ID’n ile mağazalarını oluştur süpervizöre özel çevre değişkenler
(SUPERVISOR_ENABLED, SUPERVISOR_PROCESS_NAME, SUPERVISOR_GROUP_NAME) ..

... tarafından eklenen/geçersiz kılınan ...

Kendi ID’n ile mağazalarını oluştur the çevre değişkenler set içinde the süreç başına
"ortam" yapılandırma seçeneği.

Hiçbir kabuk tarafından yürütülmez gözetmen bir alt işlemi çalıştırdığında, bu nedenle ortam değişkenleri
gibi KULLANICI, PATH, ANA SAYFA, SHELL, LOGNAME, vb. varsayılanlarından değiştirilmez veya
aksi takdirde yeniden atanır. Bu, bir çalıştırırken not etmek özellikle önemlidir.
programdan bir gözetmen ile root olarak çalıştır kullanıcı= yapılandırmada stanza. farklı
cron, gözetmen "temel" ortamı kutsallaştırmaya ve geçersiz kılmaya çalışmaz
gibi değişkenler KULLANICI, PATH, ANA SAYFA, ve LOGNAME kullanıcı tanımlı bir setuid gerçekleştirdiğinde
içinde kullanıcı= program yapılandırma seçeneği. için ortam değişkenlerini ayarlamanız gerekiyorsa
aksi takdirde belirli bir program için bir kabuk çağırma ile ayarlanabilecek belirli bir program
kullanıcı, bunu açıkça yapmanız gerekir. çevre= program yapılandırma seçeneği. Bir örnek
Bu ortam değişkenlerinin ayarlanması aşağıdaki gibidir.

[program:apache2]
komut=/home/chrism/bin/httpd -c "ErrorLog /dev/stdout" -DFOREGROUND
kullanıcı = mesih
ortam=HOME="/home/chrism",USER="chrism"

Süreç Devletler
Süpervizör tarafından kontrol edilen bir süreç, herhangi bir zamanda aşağıdaki durumlardan birinde olacaktır.
Bu durum adlarını istemcilerdeki çeşitli kullanıcı arabirimi öğelerinde görebilirsiniz.

DURDURULDU (0)
Durdurma talebi nedeniyle süreç durduruldu veya hiç başlatılmadı.

BAŞLANGIÇ (10)
İşlem, bir başlatma isteği nedeniyle başlıyor.

KOŞU (20)
İşlem devam ediyor.

GERİ BAS (30)
Süreç girdi BAŞLANGIÇ durumu ancak daha sonra taşınmak için çok hızlı bir şekilde çıkıldı
the KOŞU devlet.

DURDURULUYOR (40)
Durdurma talebi nedeniyle süreç durduruluyor.

ÇIKIŞ (100)
Süreçten çıktı KOŞU durum (beklenen veya beklenmedik bir şekilde).

FATAL (200)
İşlem başarıyla başlatılamadı.

BİLİNMEYEN (1000)
İşlem bilinmeyen bir durumda (gözetmen programlama hatası).

Süpervizör altında yürütülen her süreç, aşağıdakilere göre bu durumlar boyunca ilerler.
Yönlendirilmiş grafik.
[image: Alt İşlem Durum Geçiş Grafiği] [image] Alt İşlem Durum Geçişi
Grafik.UNINDENT

içinde bir süreç var DURDURULDU İdari olarak durdurulup durdurulmadığını veya durdurulup durdurulmadığını belirtin.
hiç başlamadı.

Otomatik yeniden başlatma işlemi devredeyken GERİ BAS durum, otomatik olarak olacak
tarafından yeniden başlatıldı gözetmen. arasında geçiş yapacak BAŞLANGIÇ ve GERİ BAS o kadar devletler
sayısı nedeniyle başlatılamayacağı ortaya çıkıyor. başlangıç ​​denemeleri vardır
maksimumu aştığında, bu noktada FATAL durum. Her başlangıç
yeniden deneme giderek daha fazla zaman alacaktır.

İçinde bir süreç olduğunda ÇIKIŞ durumda, otomatik olarak yeniden başlayacaktır:

· eğer olursa asla otomatik yeniden başlat parametre şu şekilde ayarlanmıştır: yanlış.

· koşulsuz olarak otomatik yeniden başlat parametre şu şekilde ayarlanmıştır: gerçek.

· şartlı olarak otomatik yeniden başlat parametre şu şekilde ayarlanmıştır: beklenmedik. ile çıkılırsa
içinde tanımlanan çıkış kodlarından biriyle eşleşmeyen çıkış kodu çıkış kodları
işlem için yapılandırma parametresi, yeniden başlatılacaktır.

Bir süreç otomatik olarak şundan geçer: ÇIKIŞ için KOŞU yapılandırılmasının bir sonucu olarak
koşullu veya koşulsuz olarak otomatik yeniden başlatmak için. arasındaki geçiş sayısı
KOŞU ve ÇIKIŞ hiçbir şekilde sınırlı değildir: bir konfigürasyon oluşturmak mümkündür
bu, çıkılan bir işlemi sonsuz bir şekilde yeniden başlatır. Bu bir özellik, bug değil.

Otomatik olarak yeniden başlatılan bir süreç, sonunda sona ererse asla otomatik olarak yeniden başlatılmaz. FATAL
durumu (bu durumdan manuel olarak yeniden başlatılması gerekir).

Bir süreç şuraya geçer: DURDURULUYOR bir idari durdurma talebi yoluyla belirtin ve
sonra sonunda DURDURULDU devlet.

Başarıyla durdurulamayan bir süreç, DURDURULUYOR sonsuza kadar devlet.
Bu duruma asla normal işlemler sırasında ulaşılmamalıdır, çünkü
süreç bir nihai yanıt vermedi SIGKILL amir tarafından kendisine gönderilen sinyal,
UNIX altında "imkansız".

Her zaman kullanıcı eyleminin başlatılmasını gerektiren durum geçişleri şunlardır:

FATAL -> BAŞLANGIÇ

KOŞU -> DURDURULUYOR

Her zaman olmasa da tipik olarak kullanıcı eyleminin başlatılmasını gerektiren durum geçişleri şunlardır:
belirtilen istisnalar dışında bunlar:

DURDURULDU -> BAŞLANGIÇ (işlemin otomatik olarak başlatılacağı şekilde yapılandırılmışsa, denetimli başlatma dışında)

ÇIKIŞ -> BAŞLANGIÇ (işlemin otomatik olarak yeniden başlatılacak şekilde yapılandırılması dışında)

Diğer tüm durum geçişleri, denetçi tarafından otomatik olarak yönetilir.

Günlüğü
başlıca görevlerinden biri gözetmen gerçekleştiriyor günlüğe kaydediyor. gözetmen bir etkinliği günlüğe kaydeder
çalışırken ne yaptığını detaylandıran günlük. Ayrıca stdout ve stderr alt işlemlerini de günlüğe kaydeder.
yapılandırıldıysa diğer dosyalara çıktı.

Etkinlik Giriş
Etkinlik günlüğü, gözetmen kendi sağlığıyla ilgili mesajları günlüğe kaydeder,
alt işlemin durum değişiklikleri, olaylardan kaynaklanan tüm mesajlar ve hata ayıklama ve
bilgilendirme mesajları Etkinlik günlüğüne giden yol, aşağıdakiler aracılığıyla yapılandırılır: kayıt dosyası
parametresi [denetçi] yapılandırma dosyasının bölümü, varsayılan olarak
$CWD/supervisord.log. Örnek etkinlik günlüğü trafiği aşağıdaki örnekte gösterilmektedir. Biraz
Ekrana daha iyi oturması için çizgiler kesildi.

Örnek Etkinlik Giriş Çıktı
2007-09-08 14:43:22,886 DEBG 127.0.0.1:Medusa (V1.11) 8 Eylül Cumartesi 14:43:22 2007'de başladı
Ana bilgisayar adı: kingfish
Liman: 9001
2007-09-08 14:43:22,961 BİLGİ RPC arabirimi 'denetçi' başlatıldı
2007-09-08 14:43:22,961 CRIT Herhangi bir HTTP kimlik doğrulama denetimi olmadan çalışıyor
2007-09-08 14:43:22,962 INFO süpervizörü pid 27347 ile başladı
2007-09-08 14:43:23,965 INFO ortaya çıktı: pid 00 ile 'listener_27349'
2007-09-08 14:43:23,970 INFO ortaya çıktı: 27350 pid ile 'eventgen'
2007-09-08 14:43:23,990 BİLGİ ortaya çıktı: pid 27351 ile 'yetiştirici'
2007-09-08 14:43:24,059 DEBG 'listener_00' stderr çıktısı:
/Users/chrism/projects/supervisor/supervisor2/dev-sandbox/bin/python:
'/Users/chrism/projects/supervisor/supervisor2/src/supervisor/scripts/osx_eventgen_listener.py' dosyası açılamıyor:
[Errno 2] Böyle bir dosya veya dizin yok
2007-09-08 14:43:24,060 DEBG fd 7 kapatıldı, izleme durduruldu
(stdout)>
2007-09-08 14:43:24,060 INFO'dan çıkıldı: listener_00 (çıkış durumu 2; beklenmiyor)
2007-09-08 14:43:24,061 DEBG, çocuğun istifa ettiğini gösteren SIGCHLD aldı

Etkinlik günlüğü "seviyesi", yapılandırma dosyasında şu şekilde yapılandırılır: günlük seviyesi içinde parametre
the [denetçi] ini dosyası bölümü. Ne zaman günlük seviyesi ayarlandığında, belirtilen mesajların
önceliğe ek olarak daha yüksek önceliğe sahip olanlar etkinlik günlüğüne kaydedilir. İçin
örnek, eğer günlük seviyesi is hata, mesajları hata ve kritik öncelik günlüğe kaydedilir.
Ancak, eğer loglevel ise uyarmak, mesajları uyarmak, hata, ve kritik günlüğe kaydedilecektir.

Etkinlik Giriş Düzeyleri
Aşağıdaki tablo, en yüksek öncelik sırasına göre kayıt seviyelerini daha ayrıntılı olarak açıklamaktadır.
en düşüğüne. "Yapılandırma Dosyası Değeri", kullanıcıya sağlanan dizedir. günlük seviyesi içinde parametre
the [denetçi] yapılandırma dosyasının bölümü ve "Çıktı Kodu",
aktivite günlüğü çıktı satırlarında görünür.

┌──────────────────────────────────────────── ──────────┐
│Yapılandırma Dosyası Değeri │ Çıkış Kodu │ Açıklama │
├──────────────────────────────────────────── ──────────┤
│kritik │ CRIT │ Bir │ belirten mesajlar
│ │ │ gerektiren koşul │
│ │ │ acil kullanıcı │
│ │ │ dikkat, gözetmen │
│ │ │ durum değişikliği veya bir │
│ │ │ süpervizörde hata │
│ │ │ kendisi. │
├──────────────────────────────────────────── ──────────┤
│hata │ ERRO │ Bir │ belirten mesajlar
│ │ │ potansiyel olarak göz ardı edilebilir │
│ │ │ hata koşulu (örn.
│ │ │ günlük temizlenemiyor │
│ │ │ dizini). │
├──────────────────────────────────────────── ──────────┤
│uyar │ WARN │ │ belirten mesajlar
│ │ │ anormal bir durum │
│ │ │ ki bu bir hata değildir. │
├──────────────────────────────────────────── ──────────┤
│bilgi │ BİLGİ │ Normal bilgi │
│ │ │ çıktı. Bu │
│ │ │ varsa varsayılan günlük düzeyi │
│ │ │ hiçbiri açıkça değil │
│ │ │ yapılandırıldı. │
├──────────────────────────────────────────── ──────────┤
│hata ayıklama │ DEBG │ Şunun için faydalı mesajlar │
│ │ │ hata ayıklamaya çalışan kullanıcılar │
│ │ │ süreç konfigürasyonu │
│ │ │ ve iletişim │
│ │ │ davranış (süreç │
│ │ │ çıkış, dinleyici durumu │
│ │ │ değişiklikler, olay │
│ │ │ bildirimler). │
├──────────────────────────────────────────── ──────────┤
│trace │ TRAC │ │ için faydalı mesajlar
│ │ │ geliştiriciler │
│ │ │ hata ayıklama süpervizörü │
│ │ │ eklentiler ve bilgiler │
│ │ │ HTTP ve RPC hakkında │
│ │ │ istekler ve yanıtlar. │
├──────────────────────────────────────────── ──────────┤
│blather │ BLAT │ Şunun için faydalı mesajlar │
│ │ │ geliştiriciler │
│ │ │ hata ayıklama yöneticisinin kendisi. │
└──────────────────────────────────────────── ──────────┘

Etkinlik Giriş rotasyon
Etkinlik günlüğü tarafından "döndürülür" gözetmen kombinasyonuna dayalı olarak
günlük dosyası_maxbytes ve günlük dosyası_yedekleri parametreler [denetçi] bölümünde
yapılandırma dosyası. Etkinlik günlüğü ulaştığında günlük dosyası_maxbytes bayt, geçerli günlük
dosya bir yedekleme dosyasına taşınır ve yeni bir etkinlik günlüğü dosyası oluşturulur. Bu olduğunda,
mevcut yedekleme dosyalarının sayısı şundan büyük veya eşitse günlük dosyası_yedekleri,
en eski yedekleme dosyası kaldırılır ve yedekleme dosyaları buna göre yeniden adlandırılır. eğer dosya
yazılmak isteniyor süpervizör.logaştığında günlük dosyası_maxbytes, kapandı
ve olarak yeniden adlandırıldı süpervizör.log.1, ve eğer dosyalar süpervizör.log.1, süpervizör.log.2 vb.
var, sonra yeniden adlandırılırlar süpervizör.log.2, süpervizör.log.3 vb. sırasıyla.
If günlük dosyası_maxbytes 0 ise, günlük dosyası asla döndürülmez (ve bu nedenle yedeklemeler asla yapılmaz).
If günlük dosyası_yedekleri 0 ise, hiçbir yedekleme tutulmaz.

Çocuk Süreç Kayıtlar
Süpervizör tarafından oluşturulan alt süreçlerin stdout'u, varsayılan olarak yeniden görüntülenmek üzere yakalanır
kullanıcılarına süpervizörctl ve diğer müşteriler. Günlük dosyasıyla ilgili belirli bir yapılandırma yoksa
bir gerçekleştirilir [program:x], [fcgi programı:x]ya da [etkinlik dinleyicisi:x] bölümündeki bölüm
yapılandırma dosyası, aşağıdakiler doğrudur:

· gözetmen alt sürecin stdout ve stderr çıktısını geçici olarak yakalayacaktır
Dosyalar. Her akış ayrı bir dosyaya yakalanır. Bu olarak bilinir OTO günlük modu.

· OTO günlük dosyaları otomatik olarak adlandırılır ve şu şekilde yapılandırılan dizine yerleştirilir:
çocuk günlüğü arasında [denetçi] yapılandırma dosyasının bölümü.

· Her birinin boyutu OTO günlük dosyası tarafından sınırlandırılır {streamname__logfile_maxbytes değeri
program bölümü (burada {streamname} "stdout" veya "stderr" dir). Buna ulaştığında
sayısına göre döndürülür (etkinlik günlüğü gibi),
{streamname__logfile_backups.

Alt süreç oturum açmayı etkileyen yapılandırma anahtarları [program:x] ve
[fcgi programı:x] bölümler şunlardır:

yönlendirme_stderr, stdout_logfile, stdout_logfile_maxbytes, stdout_logfile_backups,
stdout_capture_maxbytes, stderr_log dosyası, stderr_logfile_maxbytes, stderr_logfile_backups
ve stderr_capture_maxbytes.

Biri ayarlayabilir stdout_logfile or stderr_log dosyası "syslog" özel dizesine. Bu durumda,
günlükler, dosyalara kaydedilmek yerine syslog hizmetine yönlendirilecektir.

[etkinlik dinleyicisi:x] bölümler belirtmeyebilir yönlendirme_stderr, stdout_capture_maxbytesya da
stderr_capture_maxbytes, ancak aksi takdirde aynı değerleri kabul ederler.

Alt süreç günlüğünü etkileyen yapılandırma anahtarları [denetçi] yapılandırma
dosya bölümü şunlardır: çocuk günlüğü, ve temizleme yok.

Ele geçirmek Moda
Yakalama modu, Supervisor'ın gelişmiş bir özelliğidir. Yakalama modunu anlamanıza gerek yok
alt süreç çıktısından ayrıştırılan verilere dayalı olarak eylemler yapmak istemiyorsanız.

Eğer bir [program:x] yapılandırma dosyasındaki bölüm sıfırdan farklı bir
stdout_capture_maxbytes or stderr_capture_maxbytes parametre, tarafından temsil edilen her süreç
program bölümü, stdout veya stderr akışında (sırasıyla) özel belirteçler yayabilir
bu da süpervizörün etkin bir şekilde bir PROSES_İLETİŞİM olay (bkz. olaylar
olayların bir açıklaması için).

Proses iletişim protokolü, biri süpervizöre komut veren iki etikete dayanır.
akış için "yakalama modu"na ve buna çıkış komutu verene girin. Ne zaman bir süreç
akış "yakalama moduna" girer, akışa gönderilen veriler içinde ayrı bir arabelleğe gönderilir.
bellek, maksimum içermesine izin verilen "yakalama arabelleği" yakalama_maxbytes
bayt. Yakalama modu sırasında, arabelleğin uzunluğu aşıldığında yakalama_maxbytes bayt,
arabellekteki en eski veriler, yeni verilere yer açmak için atılır. Ne zaman bir süreç akışı
yakalama modundan çıkar, bir PROSES_İLETİŞİM olay alt türü, süpervizör tarafından yayınlanır;
olay dinleyicileri tarafından ele geçirilebilir.

Bir süreç akışında "yakalama modunu" başlatan etiket . Etiket
yakalama modundan çıkmak için . Bu etiketler arasındaki veriler şunlar olabilir:
keyfi ve yükü oluşturur PROSES_İLETİŞİM Etkinlik. Örneğin, eğer bir
program ile kurulur stdout_capture_maxbytes "1MB" boyutundadır ve aşağıdakileri yayar:
stdout akışı:

Merhaba!

Bu durumda, gözetmen yayınlayacak PROCESS_COMMUNICATIONS_STDOUT ile olay
"Merhaba!" yükündeki veriler.

Bir süreç iletişimi olayı yayan bir komut dosyası örneği (Python'da yazılmıştır)
the scriptler adlı süpervizör paketinin dizini örnek_commevent.py.

"Olay dinleyicileri" olarak belirtilen işlemlerin çıktısı ([etkinlik dinleyicisi:x] bölümler) değil
bu şekilde işlenir. Bu süreçlerin çıktısı yakalama moduna giremez.

uzatma süpervizörün XML-RPC API
Supervisor, yeni XML-RPC API'leri ile genişletilebilir. Zaten birkaç üçüncü taraf eklentisi
Süpervizör yapılandırmanıza bağlanabilecek var. Ek olarak yazabilirsiniz
kendi. Genişletilebilir XML-RPC arabirimleri, sürümde sunulan gelişmiş bir özelliktir.
3.0. Mevcut bir üçüncü taraf RPC'yi kullanmak istemediğiniz sürece bunu anlamanız gerekmez.
arayüz eklentisi veya kendi RPC arayüz eklentinizi yazmak istiyorsanız.

yapılandırma XML-RPC arayüzey Fabrikalar
Ek bir RPC arabirimi, bir süpervizör kurulumuna bir eklenerek yapılandırılır.
[rpc arayüzü:x] Süpervizör yapılandırma dosyasındaki bölüm.

Örnek yapılandırma dosyasında adlı bir bölüm var. [rpcinterface:denetçi].
Varsayılan olarak şöyle görünür:

[rpcinterface:denetçi]
süpervizör.rpcinterface_factory = süpervizör.rpcinterface:make_main_rpcinterface

Bu bölüm , eğer mülteci statüleri sona erdirilmemişse Amerika'ya geldikten bir yıl sonra standart süpervizör kurulumunun çalışması için yapılandırmada kalın
uygun şekilde. Süpervizörün bir şey yapmasını istemiyorsanız, zaten
kutu, bu tür bölüm hakkında bilmeniz gereken tek şey bu.

Ancak, bir yapılandırmaya ek XML-RPC arabirim ad alanları eklemek isterseniz,
süpervizör, ek ekleyebilirsiniz [rpinterface:foo] "foo"nun temsil ettiği bölümler
arabirimin ad alanı (web kökünden) ve tarafından adlandırılan değer
süpervizör.rpcinterface_factory olması gereken Python'da yazılmış bir fabrika çağrılabilir
tek bir konumsal argümanı kabul eden bir fonksiyon imzası gözetmen ve birçok
yapılandırmayı gerçekleştirmek için gerektiği gibi anahtar kelime bağımsız değişkenleri. Tanımlanan herhangi bir anahtar/değer çifti
içinde rpcarayüz:foo bölümü, fabrikaya anahtar kelime argümanları olarak iletilecektir.
İşte pakette oluşturulan bir fabrika işlevi örneği benim paketim.

def make_another_rpcinterface(süpervizör, **config):
yeniden deneme = int(config.get('tekrar deneme', 0))
other_rpc_interface = AnotherRPCInterface(süpervizör, yeniden denemeler)
başka bir_rpc_interface döndür

Ve yapılandırma dosyasındaki bir bölüm, onu yapılandırmak içindir.

[rpcinterface:başka]
süpervizör.rpcinterface_factory = my.package:make_another_rpcinterface
yeniden deneme = 1

Sözlük
Daemon araçları
A süreç kontrol sistem by DJ Bernstein.

launchd
A süreç kontrol sistem Kullanılmış by Apple Mac OS X altında işlem 1 olarak.

runit A süreç kontrol sistem.

süperlans
Birbirine bağlanan çeşitli olay dinleyici uygulamaları sağlayan bir paket
İşlem belleği kullanımını ve kilitlenme durumunu izlemeye yardımcı olabilecek süpervizör:
http://pypi.python.org/pypi/superlance.

Umask Kısaltması kullanıcı maske: geçerli işlemin dosya modu oluşturma maskesini ayarlar.
Yerimizi http://en.wikipedia.org/wiki/Umask.

API DOKÜMANTASYON


XML-RPC API Dökümanlar
XML-RPC arabirimini kullanmak için, herhangi bir XML-RPC istemcisiyle süpervizörün HTTP bağlantı noktasına bağlanın
kütüphane ve ona karşı komutları çalıştırın. Python'u kullanarak bunu yapmanın bir örneği xmlrpclib
istemci kitaplığı aşağıdaki gibidir.

xmlrpclib'i içe aktar
sunucu = xmlrpclib.Server('http://localhost:9001/RPC2')

Yöntemleri karşı arayabilirsiniz gözetmen ve alt süreçleri kullanılarak gözetmen
ad alanı. Aşağıda bir örnek verilmiştir.

sunucu.supervisor.getState()

tarafından desteklenen yöntemlerin bir listesini alabilirsiniz. gözetmen kullanarak XML-RPC arayüzü
XML-RPC system.listYöntemler API:

server.system.listYöntemler()

kullanarak bir yöntemle ilgili yardım görebilirsiniz. system.methodYardım Yönteme karşı API:

server.system.methodHelp('supervisor.shutdown')

The gözetmen XML-RPC arayüzü ayrıca şunları da destekler: XML-RPC çoklu arama API.

uzatabilirsin gözetmen ekleyerek yeni XML-RPC API yöntemleriyle işlevsellik
gerektiği gibi üst düzey RPC arabirimleri. rpcinterface_factories'e bakın.

NOT:
Herhangi bir XML-RPC yöntem çağrısı, bir hata yanıtıyla sonuçlanabilir. Bu, aşağıdakilerden kaynaklanan hataları içerir:
kötü argümanlar gibi müşteri ve bunu yapan herhangi bir hata gözetmen yapamaz
isteği yerine getirin. Birçok XML-RPC istemci programı, bir hata oluştuğunda bir istisna oluşturacaktır.
yanıtla karşılaşılır.

Müşteri | Üye seç ve Control
sınıf süpervizör.rpcinterface.SupervisorNamespaceRPCInterface(supervisord)

getAPIVersion()
Supervisord tarafından kullanılan RPC API sürümünü döndür

@dönüş dize sürümü sürüm kimliği

Bu API, Supervisor'ın kendisinden ayrı olarak sürümlendirilir. API sürümü
tarafından iade edildi getAPIVürsiyonu yalnızca API değiştiğinde değişir. Amacı
istemcinin, Süpervizör API'sinin hangi sürümüyle olduğunu belirlemesine yardımcı olmaktır.
iletişim kurmaktır.

Bu API ile iletişim kuran bir yazılım yazarken,
önce API sürümünü uyumluluk açısından test etmeniz önerilir.
yöntem çağrıları yapmak.

NOT:
The getAPIVürsiyonu yöntem değiştirir Sürümü al Supervisor'da bulunan
3.0a1'den önceki sürümler. Uyumluluk için takma ad verilmiştir, ancak
getVersion() kullanımdan kaldırıldı ve destek kaldırılacak
Gelecekteki bir sürümde süpervizör.

getSupervisorVersion()
Süpervizör tarafından kullanılan süpervizör paketinin sürümünü döndür

@dönüş dize sürümü sürüm kimliği

getIdentification()
Denetleyicinin tanımlayıcı dizesini döndür

@dönüş dizesi tanımlayıcısı dizeyi tanımlar

Bu yöntem, istemcinin hangi Supervisor örneğiyle tanımlamasını sağlar
birden fazla olduğu ortamlarda iletişim kuruyor
Denetçiler çalışıyor olabilir.

Tanımlama, Supervisor'da ayarlanması gereken bir dizedir.
yapılandırma dosyası. Bu yöntem, bu değeri basitçe
istemcisi.

getState()
Denetlenenin mevcut durumunu bir yapı olarak döndür

@return struct Anahtarları olan bir yapı int durum kodu, dize durum adı

Bu, Süpervizör tarafından tutulan ve neyin ne olduğunu belirleyen dahili bir değerdir.
Süpervizör, mevcut operasyonel durumu olduğuna inanıyor.

Bazı yöntem çağrıları, Süpervizörün mevcut durumunu değiştirebilir. İçin
örneğin, istasyon açıkken süpervizör.shutdown() yöntemini çağırmak
ÇALIŞIYOR durumu, Süpervizörü KAPATMA durumuna getirirken,
kapatmak.

Supervisor.getState() yöntemi, istemcinin kontrol etmesi için bir yol sağlar.
Süpervizörün durumu, hem bilgilendirme amaçlı hem de bunu sağlamak için
çağırmayı amaçladığı yöntemlere izin verilecektir.

Dönüş değeri bir yapıdır:

{'durum kodu': 1,
'durum adı': 'ÇALIŞIYOR'}

Olası dönüş değerleri şunlardır:

┌─────────────────────────────────────────── ─┐
│durum kodu │ durum adı │ Açıklama │
├─────────────────────────────────────────── ─┤
│2 │ FATAL │ Süpervizör │
│ │ │ ciddi bir olay yaşadı │
│ │ │ hatası. │
├─────────────────────────────────────────── ─┤
│1 │ ÇALIŞIYOR │ Süpervizör çalışıyor │
│ │ │ normalde. │
├─────────────────────────────────────────── ─┤
│0 │ YENİDEN BAŞLATILIYOR │ Süpervizör │
│ │ │ yeniden başlatma süreci. │
├─────────────────────────────────────────── ─┤
│-1 │ KAPATMA │ Süpervizör │
│ │ │ kapatma işlemi │
│ │ │ aşağı. │
└─────────────────────────────────────────── ─┘

The FATAL durum, dahili hatalar gibi kurtarılamaz hataları bildirir
Süpervizör veya sistem kaçak koşulları içinde. Bir kez ayarlandığında FATAL,
Süpervizör, yeniden başlatılmadan asla başka bir duruma geri dönemez.

içinde FATAL durumu, süpervizör.shutdown() ve dışındaki tüm gelecekteki yöntemler
süpervizör.restart() çağrılmadan otomatik olarak başarısız olur ve
arıza ÖLÜMCÜL_DEVLET yükseltilecek.

içinde Kapanma or Yeniden Başlatmak durumlar, tüm yöntem çağrıları yoksayılır ve
olası dönüş değerleri tanımsızdır.

getPID()
Denetçinin PID'sini döndür

@dönüş int PID

readLog(ofset, uzunluk)
Uzaklıktan başlayarak ana günlükten uzunluk baytlarını oku

@param int ofset ofset okumaya başlamak için. @param int
günlükten okunacak bayt uzunluğu sayısı. @dönüş dizesi
sonuç Günlük baytları

Kuyruktan bir dizi karakter olan tüm günlüğü döndürebilir
günlüğün veya uzaklık ve uzunluk tarafından belirtilen günlüğün bir dilimi
parametreleri:

┌──────────────────────────────────────────── ──────┐
│Ofset │ Uzunluk │ Davranışı │
│ │ │ okumaSüreç Günlüğü
├──────────────────────────────────────────── ──────┤
│Olumsuz │ Sıfır Değil │ Kötü argümanlar. Bu │
│ │ │ arızayı kaldırın │
│ │ │ BAD_ARGUMENTS. │
└──────────────────────────────────────────── ──────┘

│Negatif │ Sıfır │ Bu, │ değerini döndürür.
│ │ │ kütüğün kuyruğu veya │
│ │ │ ofset sayısı │
│ │ │ sondan itibaren karakterler │
│ │ │ günlüğün. │ için
│ │ │ örnek, eğer ofset = -4 │
│ │ │ ve uzunluk = 0, ardından │
│ │ │ son dört karakter │
│ │ │, │'den döndürülecek
│ │ │ günlüğün sonu. │
├──────────────────────────────────────────── ──────┤
│Sıfır veya Olumlu │ Olumsuz │ Kötü argümanlar. Bu │
│ │ │ arızayı kaldırın │
│ │ │ BAD_ARGUMENTS. │
├──────────────────────────────────────────── ──────┤
│Sıfır veya Pozitif │ Sıfır │ Tüm karakterler │
│ │ │ geri döndü ofset
│ │ │ belirtildi. │
├──────────────────────────────────────────── ──────┤
│Sıfır veya Pozitif │ Pozitif │ Bir dizi karakter │
│ │ │ uzunluk döndürülecek │
│ │ │ gelen ofset. │
└──────────────────────────────────────────── ──────┘

Günlük boşsa ve günlüğün tamamı istenirse, boş bir dize
iade.

Ofset veya uzunluk aralık dışındaysa, hata BAD_ARGUMENTS irade
iade edilecek.

Günlük okunamıyorsa, bu yöntem ya DOSYA YOK
dosya yoksa veya BAŞARISIZ başka bir sorun varsa hata
karşılaşıldı.

NOT:
readLog() yöntemi, Supervisor'da bulunan readMainLog()'un yerini alır
2.1'den önceki sürümler. Uyumluluk için takma ad verilmiştir, ancak
readMainLog() kullanımdan kaldırıldı ve destek kaldırılacak
Gelecekteki bir sürümde süpervizör.

clearLog()
Ana günlüğü temizleyin.

@return boole sonucu, hata olmadıkça her zaman True döndürür

Günlük dosyası mevcut olmadığı için günlük temizlenemiyorsa,
arıza DOSYA YOK yükseltilecek. Günlük başka bir şey için temizlenemiyorsa
sebep, kusur BAŞARISIZ yükseltilecek.

kapat()
Süpervizör sürecini kapatın

@return boole sonucu, hata olmadıkça her zaman True döndürür

Bu yöntem, Süpervizör arka plan programını kapatır. herhangi bir işlem varsa
koşarken, uyarılmadan otomatik olarak öldürülürler.

Diğer yöntemlerin çoğundan farklı olarak, eğer Süpervizör FATAL devlet, bu
yöntem çalışmaya devam edecektir.

tekrar başlat()
Süpervizör sürecini yeniden başlatın

@return boole sonucu, hata olmadıkça her zaman True döndürür

Bu yöntem yumuşak, Süpervizör arka plan programını yeniden başlatır. herhangi bir işlem varsa
koşarken, uyarılmadan otomatik olarak öldürülürler. Şuna dikkat edin:
Süpervizör için gerçek UNIX süreci yeniden başlatılamaz; sadece Süpervizörün ana
program döngüsü. Bu, dahili durumların sıfırlanması etkisine sahiptir.
Danışman.

Diğer yöntemlerin çoğundan farklı olarak, eğer Süpervizör FATAL devlet, bu
yöntem çalışmaya devam edecektir.

Süreç Control
sınıf süpervizör.rpcinterface.SupervisorNamespaceRPCInterface(supervisord)

getProcessInfo(isim)
Ad adlı bir işlem hakkında bilgi alın

@param string name İşlemin adı (veya 'grup:isim') @return
struct sonuç Süreçle ilgili verileri içeren bir yapı

Dönüş değeri bir yapıdır:

{'isim': 'işlem adı',
'grup': 'grup adı',
'description': 'pid 18806, çalışma süresi 0:03:12'
'başlangıç': 1200361776,
'dur': 0,
'şimdi': 1200361812,
'durum': 1,
'durum adı': 'ÇALIŞIYOR',
'spawnerr': '',
'çıkış durumu': 0,
'logfile': '/path/to/stdout-log', # kullanımdan kaldırıldı, yalnızca b/c
'stdout_logfile': '/path/to/stdout-log',
'stderr_logfile': '/path/to/stderr-log',
"pi": 1}

isim Sürecin adı

Grup İşlem grubunun adı

tanım
İşlem durumu çalışıyorsa, açıklamanın değeri process_id'dir ve
çalışma süresi. Örnek "pid 18806, çalışma süresi 0:03:12". İşlem durumu ise
durdurulan açıklamanın değeri durma zamanıdır. Örnek:"5 Haziran 03:16 PM
".

başlama İşlemin ne zaman başlatıldığını gösteren UNIX zaman damgası

durdurmak İşlemin en son ne zaman sona erdiğini gösteren UNIX zaman damgası veya işlem ise 0
hiç durdurulmamıştır.

şimdi Geçerli zamanın UNIX zaman damgası, hesaplamak için kullanılabilir
süreç up-time.

belirtmek, bildirmek Durum kodu, bkz. process_states.

Devlet adı
dize açıklaması belirtmek, bildirmek, bkz. process_states.

kayıt dosyası
kullanımdan kaldırılan takma ad stdout_logfile. Bu sadece için sağlanır
Supervisor 2.x için yazılmış istemcilerle uyumluluk ve
gelecekte kaldırıldı. Kullanmak stdout_logfile yerine.

stdout_logfile
STDOUT günlük dosyasının mutlak yolu ve dosya adı

stderr_log dosyası
STDOUT günlük dosyasının mutlak yolu ve dosya adı

yumurtlayan
Doğma sırasında meydana gelen hatanın açıklaması veya boş dize
eğer hiçbiri.

çıkış durumu
İşlemin çıkış durumu (hata seviyesi) veya işlem hala devam ediyorsa 0
çalışıyor.

pid İşlemin UNIX işlem kimliği (PID) veya işlem değilse 0
çalışıyor.

getAllProcessInfo()
Tüm süreçler hakkında bilgi alın

@return dizi sonucu Bir dizi işlem durumu sonucu

Her eleman bir yapı içerir ve bu yapı tamamen aynısını içerir.
tarafından döndürülen yapı olarak öğeler ProcessInfo'yu al. İşlem tablosu ise
boşsa, boş bir dizi döndürülür.

startProcess(isim, bekle=Doğru)
Bir süreç başlat

@param dize adı İşlem adı (veya grup ismiya da grup:*) @param
boolean wait İşlemin tamamen başlamasını bekleyin @return boolean sonucu
Hata olmadıkça her zaman doğru

startAllProcesses(bekle=Doğru)
Yapılandırma dosyasında listelenen tüm işlemleri başlatın

@param boolean wait Her işlemin tam olarak başlamasını bekleyin @return
dizi sonucu Bir dizi süreç durumu bilgisi yapısı

startProcessGroup(ad, bekle=Doğru)
'name' adlı gruptaki tüm işlemleri başlatın

@param string name Grup adı @param boolean bekleyin Bekleyin
tam olarak başlatılacak her işlem @return dizi sonucu Bir dizi
süreç durumu bilgi yapıları

stopProcess(isim, bekle=Doğru)
Ada göre adlandırılmış bir işlemi durdur

@param string name Durdurulacak işlemin adı (veya 'grup:isim')
@param boolean wait İşlemin tamamen durdurulmasını bekleyin
@return boole sonucu Hata olmadıkça her zaman True döndür

stopProcessGroup(ad, bekle=Doğru)
'Ad' adlı işlem grubundaki tüm işlemleri durdurun

@param string name Grup adı @param boolean bekleyin Bekleyin
tamamen durdurulacak her işlem @return dizi sonucu Bir dizi
süreç durumu bilgi yapıları

stopAllProcesses(bekle=Doğru)
İşlem listesindeki tüm işlemleri durdurun

@param boolean wait Her işlemin tamamen durdurulmasını bekleyin @return
dizi sonucu Bir dizi süreç durumu bilgisi yapısı

sendProcessStdin(ad, karakterler)
İşlem adının stdin'ine bir karakter dizisi gönderin. 7-bit değilse
veri gönderilir (unicode), kullanıcıya gönderilmeden önce utf-8 olarak kodlanır.
süreç' stdin. Karakterler bir dize değilse veya unicode değilse, yükseltin
INCORRECT_PARAMETERS. İşlem çalışmıyorsa, NOT_RUNNING yükseltin.
Eğer süreç 'stdin girişi kabul edemezse (örn.
alt süreç), NO_FILE yükseltin.

@param string name Gönderilecek işlem adı (veya 'grup:isim')
@param string chars İşleme gönderilecek karakter verileri
@return boole sonucu Hata olmadıkça her zaman True döndür

sendRemoteCommEvent(tür, veri)
Olay dinleyicisi alt süreçleri tarafından alınacak bir olay gönderin
RemoteCommunicationEvent'e abone olmak.

@param string type Olay başlığındaki "type" anahtarı için dize
@param string data Olay gövdesi için veri @return boolean
Hata olmadıkça her zaman True döndür

yeniden yükleKonfigürasyon()
Yapılandırmayı yeniden yükle

@return boole sonucu, hata olmadıkça her zaman True döndürür

addProcessGroup(ad)
Yapılandırma dosyasından çalışan bir işlem için yapılandırmayı güncelleyin.

@param dize adı @return boolean eklenecek işlem grubunun adı
sonuç başarılıysa doğru

removeProcessGroup(ad)
Durdurulmuş bir işlemi etkin konfigürasyondan kaldırın.

@return kaldırılacak işlem grubunun @param dize adı
boolean sonuç Kaldırmanın başarılı olup olmadığını gösterir

Süreç Günlüğü
sınıf süpervizör.rpcinterface.SupervisorNamespaceRPCInterface(supervisord)

readProcessStdoutLog(ad, ofset uzunluk)
Uzaklıktan başlayarak adın stdout günlüğünden uzunluk baytlarını oku

@param dizesi işlemin adını adlandırın (veya 'grup:ad')
@param int ofset ofset okumaya başlamak için. @param int
günlükten okunacak bayt uzunluğu sayısı. @dönüş dizesi
sonuç Günlük baytları

readProcessStderrLog(ad, ofset uzunluk)
Uzaklıktan başlayarak adın stderr günlüğünden uzunluk baytlarını oku

@param dizesi işlemin adını adlandırın (veya 'grup:ad')
@param int ofset ofset okumaya başlamak için. @param int
günlükten okunacak bayt uzunluğu sayısı. @dönüş dizesi
sonuç Günlük baytları

tailProcessStdoutLog(ad, ofset uzunluk)
(stdout) günlüğünü sıralamak için daha verimli bir yol sağlar
readProcessStdoutLog(). Parçaları okumak için readProcessStdoutLog() kullanın ve
tailProcessStdoutLog() ile tail.

(ad) günlüğünden (offset) başlayan istekler (uzunluk) baytları. Eğer
toplam günlük boyutu (öteleme + uzunluk), taşma işaretinden büyük
ayarlanır ve (ofset) arabelleği konumlandırmak için otomatik olarak artırılır
günlüğün sonunda. (uzunluk) bayttan daha az mevcutsa,
maksimum kullanılabilir bayt sayısı döndürülür. (ofset) döndürülen
günlük +1'deki her zaman son ofset.

@param dizesi işlemin adını adlandırın (veya 'grup:ad')
@param int uzunluğundan okumaya başlamak için @param int offset offset
@return dizi sonucunu döndürecek maksimum bayt sayısı [dize
bayt, int ofset, bool taşması]

tailProcessStderrLog(ad, ofset uzunluk)
(stderr) günlüğünü sıralamak için daha verimli bir yol sağlar
readProcessStderrLog(). Parçaları okumak için readProcessStderrLog() kullanın ve
tailProcessStderrLog() ile tail.

(ad) günlüğünden (offset) başlayan istekler (uzunluk) baytları. Eğer
toplam günlük boyutu (öteleme + uzunluk), taşma işaretinden büyük
ayarlanır ve (ofset) arabelleği konumlandırmak için otomatik olarak artırılır
günlüğün sonunda. (uzunluk) bayttan daha az mevcutsa,
maksimum kullanılabilir bayt sayısı döndürülür. (ofset) döndürülen
günlük +1'deki her zaman son ofset.

@param dizesi işlemin adını adlandırın (veya 'grup:ad')
@param int uzunluğundan okumaya başlamak için @param int offset offset
@return dizi sonucunu döndürecek maksimum bayt sayısı [dize
bayt, int ofset, bool taşması]

clearProcessLogs(isim)
Adlandırılmış işlem için stdout ve stderr günlüklerini temizleyin ve yeniden açın.

@param string name İşlemin adı (veya 'grup:isim') @return
boolean sonucu Hata olmadıkça Daima Doğru

clearAllProcessLogs()
Tüm işlem günlük dosyalarını temizle

@return dizi sonucu Bir dizi işlem durumu bilgisi yapısı

sistem Yöntemler
sınıf süpervizör.xmlrpc.SystemNamespaceRPCInterface(ad alanları)

listeYöntemler()
Kullanılabilir yöntem adlarını listeleyen bir dizi döndür

@return dizi sonucu Kullanılabilir bir dizi yöntem adı (dizeler).

methodHelp(isim)
Yöntemin belgelerini gösteren bir dize döndür

@param string name Yöntemin adı. @dönüş dizesi sonucu
yöntem adı için belgeler.

yöntemİmza(ad)
[rtype," biçiminde yöntem imzasını açıklayan bir dizi döndürün.
ptype, ptype...] burada rtype, yöntemin dönüş veri türüdür ve
ptypes, yöntemin yöntemde kabul ettiği parametre veri türleridir.
argüman sırası.

@param string name Yöntemin adı. @dönüş dizisi sonucu
sonuç.

çoklu arama(aramalar)
Bir dizi çağrıyı işleyin ve bir dizi sonuç döndürün. Aramalar
{'methodName': string, 'params': array} biçiminde yapılar olun. Her biri
sonuç, sonuç değerini içeren tek öğeli bir dizi veya
{'faultCode': int, 'faultString': string} formunun yapısı. Bu
çok fazla tur olmadan çok sayıda küçük arama yapmanız gerektiğinde kullanışlıdır
geziler.

@param dizi çağrıları Bir dizi çağrı isteği @return dizisi sonucu An
sonuç dizisi

PLUGINS


ENDEKSLERİ VE TABLOLAR


· cinsiyet indeksi

· mod indeksi

· arama

onworks.net hizmetlerini kullanarak süpervizörü çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad