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/ |
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]
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.
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:
- antiX (oparty na Debianie, od wersji 19)
- Void Linux [8]
Runit jest „oficjalnie” dostępnym systemem init dla:
Przypisy
- ↑ 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.
- ↑ runit - installation [online], smarden.org [dostęp 2024-05-09] .
- ↑ Steve Purcell: Init Scripts Considered Harmful. sanityinc.com, 2007-11-11. [dostęp 2024-05-09].
- ↑ Gerrit Pape: runit - benefits. [dostęp 2024-05-09].
- ↑ Gerrit Pape: runit - benefits. [dostęp 2024-05-09].
- ↑ Gerrit Pape: replacing init. [dostęp 2024-05-09].
- ↑ Gerrit Pape: use with traditional init. [dostęp 2024-05-09].
- ↑ VoidLinux. [dostęp 2024-05-09].
- ↑ Artix Wiki Runit [online], Artix Wiki [dostęp 2024-05-09] (ang.).
- ↑ Init Freedom | Devuan GNU+Linux Free Operating System [online] [dostęp 2024-05-09] (ang.).
- ↑ Gentoo. [dostęp 2024-05-09].
Linki zewnętrzne
- Oficjalna strona runit
- Repozytorium runit w serwisie Github