runit; işletim sistemi boyunca işlemleri başlatan, denetleyen ve sonlandıran Unix benzeri işletim sistemleri için bir init şemasıdır. Runit; birçok Linux tabanlı işletim sisteminde ve Mac OS X, *BSD ve Solaris işletim sistemlerinde çalışan daemontools süreç denetimi araç setinin yeniden tasarlanmasıdır. Runit, işletim sisteminin önyükleme süresini hızlandıran sistem hizmetlerinin başlatılmasının paralelleştirilmesini sağlar.

Runit bir init daemon’udur, bu yüzden diğer tüm süreçlerin doğrudan ya da dolaylı atasıdır. Önyükleme sırasında başlatılan ilk işlemdir ve sistem kapatılana kadar çalışmaya devam eder.

Tasarım

Runit; küçük, modüler ve taşınabilir bir kod tabanı olma üzerine odaklanır. Runit üç aşamaya ayrılır: bir kez başlatma, işlem denetimi ve durdurma veya yeniden başlatma. Birinci ve üçüncü aşamalar, çalıştıkları belirli işletim sistemine uyarlanmalı; ikinci aşama ise tüm POSIX uyumlu işletim sistemlerinde taşınabilirdir. 3 aşama; sırasıyla 1, 2 ve 3 olarak adlandırılan 3 çalıştırılabilir dosya (genellikle kabuk komut dosyalarıdır) aracılığıyla yapılandırılabilir.

Aşama 2, genellikle global daemon’lar yönetiminden sorumlu olan işlem olan runvdir adındaki bir ikiliyi çağırır: Argümanla kendisine aktarılan bir klasörde bulduğu her bir daemon için bireysel takipçi ortaya çıkar, her biri bir daemon (ve nihayetinde bununla ilişkili bir günlükçü [logger] servisi) başlatır ve ölürse yeniden başlatır. Özel adlara sahip çalıştırılabilir dosyalar; arka planın ömrünün çeşitli aşamalarını tanımlamak için kullanılır (çalıştır, kontrol et, bitir, …), gönderilen sinyalleri arayabilir ve varsa belirli komut dosyalarını çalıştırabilir ve adlandırılmış yöneltmeler, arka plan programı kontrol etmek için arayüzleri ortaya çıkarmak için yaratılmıştır.

Kullanım

Runit; ya sysvinit için bir drop-in yedeği olarak ya da ana PID1 işleminin inittab’dan çalıştırılmasıyla birlikte sysvinit ile hizmet yönetici programı (süpervizörü) olarak kullanılabilir. Ruby on Rails’i çalıştıran RubyWorks yazılım paketi, Runit’i kendi paketine dâhil etti. Runit; Artix ve Void Linux için varsayılan başlangıç sistemidir.

References