runit – program do zarządzania usługami dla systemów operacyjnych typu Unix, który inicjuje (uruchamia), nadzoruje i kończy procesy w całym systemie operacyjnym. Runit jest reimplementacją zestawu narzędzi do nadzorowania procesów daemontools[3], który działa na wielu systemach operacyjnych opartych na jądrze Linux, a także na systemach operacyjnych BSD i Solaris. Runit umożliwia równoległe uruchamianie usług systemowych, co może przyspieszyć czas uruchamiania systemu operacyjnego.[4]

runit
Autor Gerrita Pape
Pierwsze wydanie Luty 10, 2004 ; 20 lat temu ( 2004-02-10 ) [1]
Aktualna wersja stabilna 2.1.2[2]
Język programowania C, Shell
System operacyjny Linux, FreeBSD, OpenBSD, NetBSD, macOs, Solaris
Rodzaj init
Licencja New BSD License
Strona internetowa smarden.org/runit/

Działając jako init, Runit jest bezpośrednim lub pośrednim przodkiem wszystkich innych procesów. Jest to pierwszy proces uruchamiany podczas uruchamiania systemu i trwa do momentu wyłączenia systemu. Jest często używany z innymi systemami inicjującymi jako oddzielny menedżer usług. W roli menedżera usług może być używany przez nieuprzywilejowanych użytkowników do organizowania usług osobistych, a także przez roota do zarządzania usługami, którymi w inny sposób nie zarządzałby aktualnie używany system init.

Status uruchomionych demonów pokazany za pomocą komendy sv w Void Linux

Runit koncentruje się na byciu małą, modułową i przenośną bazą kodu. W roli inicjującej Runit jest podzielony na trzy etapy: jednorazowa inicjalizacja, nadzór procesu oraz zatrzymanie lub ponowne uruchomienie. Chociaż pierwszy i trzeci etap muszą być dostosowane do konkretnego systemu operacyjnego, na którym działają, drugi etap można przenosić na wszystkie systemy operacyjne zgodne z POSIX.[5] Te 3 etapy można skonfigurować za pomocą 3 plików wykonywalnych (zwykle są to skrypty powłoki) o nazwach odpowiednio 1, 2 i 3.

Etap 2 zwykle wywołuje plik binarny o nazwie runsvdir, który jest procesem odpowiedzialnym za globalne zarządzanie demonami: dla każdego demona, który znajdzie w folderze przekazanym mu przez argument, następnie tworzy indywidualnego watchdoga, każdy z nich uruchamia demona (i program rejestrujący usługę ostatecznie z nim powiązaną) i uruchamia ją ponownie, jeśli nie odpowiada. W przypadku dodania lub usunięcia demona, zabija on watchdoga lub uruchamia nowego. Pliki wykonywalne o określonych nazwach służą do opisu różnych faz życia demona (uruchamianie, sprawdzanie, zakończenie), mogą przechwytywać sygnały wysyłane i uruchamiane przez określone skrypty, jeśli takie istnieją, a także tworzone są nazwane potoki w celu odsłonięcia interfejsów do kontrolowania demona.

Zarządzanie serwisami uruchomionymi przez runit umożliwia komenda sv.

Runit może być używany jako zamiennik [6] dla sysvinit lub jako nadzorca usługi (z sysvinit jako procesem nadrzędnym PID 1, który uruchamia procesy określone w pliku inittab lub innym systemie init). [7]

Runit jest domyślnym systemem inicjującym:

Runit jest „oficjalnie” dostępnym systemem init dla:

Przypisy edytuj

  1. Pape, Gerrit (2004-02-10). "runit-1.0.0 release". gmane.comp.sysutils.supervision.general (Mailing list). Zarchiwizowane z oryginału w 2013-12-13. Dostęp 2024-05-09.
  2. runit - installation [online], smarden.org [dostęp 2024-05-09].
  3. Steve Purcell: Init Scripts Considered Harmful. sanityinc.com, 2007-11-11. [dostęp 2024-05-09].
  4. Gerrit Pape: runit - benefits. [dostęp 2024-05-09].
  5. Gerrit Pape: runit - benefits. [dostęp 2024-05-09].
  6. Gerrit Pape: replacing init. [dostęp 2024-05-09].
  7. Gerrit Pape: use with traditional init. [dostęp 2024-05-09].
  8. VoidLinux. [dostęp 2024-05-09].
  9. Artix Wiki Runit [online], Artix Wiki [dostęp 2024-05-09] (ang.).
  10. Init Freedom | Devuan GNU+Linux Free Operating System [online] [dostęp 2024-05-09] (ang.).
  11. Gentoo. [dostęp 2024-05-09].

Linki zewnętrzne edytuj