Unix süreçlerini denetlemek için Daemontools'a (djbtools) alternatif mi?


26

Sunucularımdaki Unix servislerini denetlemek için basit ve güvenilir bir yol sağlamak için Daemontools kullandım . İyi çalışıyor, ancak farklı bir düşünce tarzı ( DJB Yolu ) gerektiriyor ve bazı genel şikayetler:

  • TAI64N tabanlı zaman damgaları
  • Komut dosyalarını /etc/init.d (veya (/usr/local)/etc/rc.d) altında saklamaz
  • Her zaman apachectl gibi scriptlerle çalışmaz. Bazı senaryoların yeniden yazılması gerekir.

Bazı “süpervizör / bekçi” ödevlerinin yaklaşık iki yıl önceki eserlerinde bulunduğunu hatırlıyorum, ancak bazıları hala kenarlarda biraz kaba davranıyordu.

Daemontools'tan başka bir şeye geçtiyseniz, neyi seçtiniz ve sizin için iyi çalıştı? RedHat veya Ubuntu, varsayılan olarak herhangi bir işlem denetleyicisi yardımcı programıyla birlikte geliyor mu?

Yanıtlar:


16

Hrm, eğer Ubuntu kullanıyorsanız, yeni başlangıç ​​süreci, başlangıç , bir süreç denetim seviyesi içerir. Standart hizmetlerin başlatılması ve durdurulması, la SysV init betikleri için kullanılabilir ve ayrıca çalışan uygulamaları izleyebilir ve ölürlerse yeniden gönderebilir.

İhtiyaçlarınızın ne olduğuna bağlı olarak fakir bir insanın işlem başlatıcısını inittab aracılığıyla da uygulayabilirsiniz.

Öncelikle bir sürece göz kulak olacak, sürekli çalıştığından emin olmak için bir şey arıyorsanız, ve olmadığında tekrar başlatın, restartd konusunda büyük şansım oldu . Ne yazık ki, bildiğim tek kaynak Debian paketi. Ancak, çok küçük ve basit bir uygulama, temelde sadece bir .c ve .h dosyası olan make dosyası. Red Hat'taki Debian kaynak tarball'ından derlemek önemsizdir (daha önceki işimde bile bir RPM yaptım).

Duyduğum, ancak kullanmadığım son seçenek Süpervizör . Gelecek vaat eden bir araca benziyor ama restartd geçmişte benim için yeterince çalıştı, ihtiyaç duyduğum şey için, henüz oynamak için uğraşmadım.


12

Runit için +1. Daemontools'tan daha fazla özellik ve esnek, mevcut Daemontools argümanları ve seçenekleriyle uyumlu. Oldukça temiz.

Ancak birçok araçtan bahsettiğiniz gibi, apache2ctl, ejabberdctl, poundctl, collectd, vb. Gibi kontrol araçları ile birlikte gelir. olası uygulama. Genelde bir uzlaşma yapıyorum ve hizmetlerin çoğunu runit denetiminde çalıştırıyorum. Ve diğerleri önemsiz yoldan koşmalarına izin verilebilir.


1
+1 Bir runsvkomutun runitözel kontrolleri desteklediğinden, yeniden başlatmanın bir daemonun yerel kontrol ikili dosyaları açısından uygulanabileceğinden bahsetmeye değer .
pilcrow

4

Neyse, runit var . Daemontools ile olan farklılıklarının ve benzerliklerinin ne olduğunu söyleyemem, ancak Berstein-esque web sitesi tarafından bakılırsa, kesin bir Bernstein etkisi olduğunu söyleyebilirim.


2
Benim oyum, SysVInit düzenlemesine bırakıp /etc/init.d/ <scriptname> 'i oldukça şeffaf bir şekilde devralması koşuluyla runit içindir.
Avery Payne,


4

Bahsedilen daemonizeve alternatif olarak , libslack paketinin daemon komutu daemontoolsvar .

daemon oldukça yapılandırılabilir ve otomatik yeniden başlatma, günlük kaydı veya pidfile kullanımı gibi tüm sıkıcı arka plan programlarına önem veriyor.



3

Ayrıca libslack'un C dilinde yazılmış ve çeşitli (Unix) platformlarında kullanılabilen daemon aracı da bulunmaktadır.

Oldukça yapılandırılabilir ve otomatik yeniden başlatma, günlüğe kaydetme veya pidfile kullanımı gibi tüm sıkıcı arka plan programlarına önem veriyor.


2

Ubuntu, Upstart ile birlikte geliyor - bu konuda fazla bir şey bilmiyorum ama "yönetici" yetenekleri olduğunu biliyorum. Apple'ın lansmanı başka bir seçenektir (Wikipedia makalesinde, Upstart & RunIt dahil olmak üzere bir sürü başka grubu da listeleyen hoş bir "ayrıca bakınız" bölümü vardır).

Hepsinin iyi noktaları ve kendi özel übersuck markaları var - Ne zaman biri bana "süreç süpervizörü" / "bekçi köpeği" programları sorduğunda hep aynı soruyu soruyorum: Neden birisine ihtiyacınız var?


-2

Bunun için popüler / topluluk-fikir birliği aracı yoktur, çünkü bu yola inen herkes bir çıkmaza dönüşür. Uzun süren işlemleriniz basit izlemenin yeterince iyi olması için çok sık başarısız olursa, bunları kullanmayı bırakın ve kodunuzu daha fazla etkinlik odaklı bir şeyin içine taşıyın.

düzenleme: Chris aşağıda belirtildiği gibi, bazen tamamen köşelidir, bu durumda / pidfile işlemini arayan bir * / 1 cron işi eksikse bir start / restart çalıştırır ve sonuçları sorumlu bir e-postaya gönderir. geliştirici / ürün yöneticisi, geri dönüş pozisyonunuzdur.


3
Söylemesi yapmaktan kolay. ;-) Bazen ne kadar dengesiz veya berbat olduklarına bakılmaksızın, çalıştırmaya zorlandığınız uygulamalarınız olabilir ve onları çalışır durumda tutmak için yapabileceğiniz herhangi bir şey, 03:00 telefon görüşmelerini azaltmanıza yardımcı olur. Her ne şekilde olursa olsun ideal değil, ama bazen olabildiğince iyi.
Christopher Cashell

1
Bu yanıt, işlemci denetçilerinin iki özelliğini kaçırır: işlem gruplarını tek bir birim olarak yönetme ve bağımlılıkları yönetme yeteneği. Örneğin, web siteniz bir web sunucusu, veritabanı sunucusu ve harici işlemler olarak çalışan birkaç web uygulamasını içerebilir. Bu işlemlerin bağımlılıkları olabilir - örneğin, veritabanının web uygulamasından önce açılması gerekir. İyi bir süreç sorumlusu, bu süreç grubunu tek bir komutla başlatmanıza ve durdurmanıza izin verecek ve işlerin doğru sırayla başladığından emin olacaktır.
12'de larsks

1
İdeal bir dünyada, her şey mükemmel çalışırdı. Ne yazık ki bu sadece ideal bir dünya değil.
Matt

Sorun çok sık başarısız olmuyor. Sorun haftada bir kez başarısız oluyor ve hemen yeniden başlatılmıyor . Bu gerçek bir cevap değil.
dan3 kas

@ChristopherCashell doğru yolda. Denetleme içindeki bir uygulama genellikle aşırı mühendislik (ve aynı zamanda UNIX Felsefesi olmamak gerçekleşir.) Yazılım hep kusurlu olması, çok proaktif çaba içinde dökülür nasıl olursa olsun her çökmesine düzeltmek için kabul edilebilir. Denetleme ayrı, dış bir katmandır ... bir sigorta poliçesi. Ne olursa olsun, “çökmemesi gereken” olsa bile, üretim hizmetlerini sürdürmek daha iyi çünkü gerçek% sh. Bir servisin yeniden başlatılmasını tercih ederim, istisnayı günlüğe kaydedin ve sabah düzeltin. (Hizmetin çırpılması dikkate alınması gereken başka bir durumdur.)
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.