uptart ve supervisord aynı şey için kullanılıyor mu?


13

Sunucum yeniden başlatıldığında ve ayrıca beklenmedik bir hata vb. Nedeniyle durduğunda başlaması gereken bazı jvm tabanlı işlemlerim var.

Durumlarda Ubuntu 12.04 kullanıyorum.

Örnek uptart komut dosyaları gördüm ve bu şekilde eğildim, ancak farkların uptart veya supervisord gibi bir şeyle ne olduğunu anlamak istiyorum.

Tam olarak aynı amaçlar için mi kullanılıyorlar yoksa işlevsellikte farklılıklar mı var?

Yanıtlar:


12

Aradaki fark, start-up'ın bir init değişimidir, oysa süpervizör bir Process Control System. Bu açıklama denetim sitesinde verilmiştir :

Launchd, daemontools ve runit gibi programların bazı hedeflerini paylaşır. Bu programlardan bazılarının aksine, init'in yerine "işlem kimliği 1" olarak çalıştırılması amaçlanmamıştır. Bunun yerine, bir proje veya müşteri ile ilgili süreçleri kontrol etmek için kullanılır ve önyükleme sırasında herhangi bir program gibi başlatılması amaçlanır.

Bu, süpervizörün kendisinin bir uptart iş dosyası veya bir sysV init betiği aracılığıyla uptart tarafından başlatılacağı anlamına gelir. Şahsen, aşağıdaki nedenlerle başlayarak düz init yerine bir süreç yöneticisi kullanmayı seçtim:

  1. Hizmet düzgün bir şekilde arka plan programı oluşturmuyor
  2. Hizmetin izlenmesi ve yeniden başlatılması gerektiği için öldüğü bilinmektedir.

Düzgün bir şekilde arka plan oluşturmayan bir programa örnek olarak stdout ve stderr'i kapatmaz ve bu konumlara veri yazmaya devam eder. Denetim o çıktının günlüğünü tutabilir.


Anlıyorum, tam olarak anladığımdan emin değilim, ancak upstart'ın da başarısız olursa süreci yeniden başlatabileceğini düşündüm.
Blankman

@Blankman Sanırım modern init sistemleriyle daha da az sebep var
Jordanm

Düzgün bir şekilde arka plana çevirmeyen bir hizmet için doğru çözümün, söz konusu hizmetin düzgün bir şekilde arka plana sahip olmamasına neden olan hatayı düzeltmek olacağını unutmayın. Yine de süpervizör gibi bir şeyin # 2 için yararlı olacağını söyleyeceğim.
13'te Shadur

1
@shadur Bunun en iyi çözüm olduğu konusunda hemfikir değilim. İşlem size ait olmayabilir, bu yüzden düzeltemezsiniz. Düzeltebilseniz bile, kaç hata düzelttiğinize bakılmaksızın, daha fazla gizlenme olmadığını asla bilemezsiniz ve yıllar sonra, işleminiz hiç ortaya çıkmamış bazı durumlar nedeniyle üretimde bir kez daha ölecektir. alışılmadık bir ağ veya veritabanı koşulu gibi. Sitenizin çevrimdışı kalmasını, kullanıcıları hayal kırıklığına uğratmasını ve size maliyet getirmesini tercih eder misiniz? Hayır. Hizmetleri yeniden başlatmak için bir araca ihtiyacınız vardır. Dönemi.
Jonathan Hartley
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.