Init/System/Entwicklung: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung |
K Textersetzung - „http://“ durch „https://“ |
||
Zeile 8: | Zeile 8: | ||
* Dienste werden hier strikt der Reihe nach gestartet, unabhängig davon, ob diese parallel gestartet werden könnten | * Dienste werden hier strikt der Reihe nach gestartet, unabhängig davon, ob diese parallel gestartet werden könnten | ||
* SysVinit setzt auf viele Skripte, welche in weiten Teilen ähnliche oder sogar gleiche Aufgaben erledigen | * SysVinit setzt auf viele Skripte, welche in weiten Teilen ähnliche oder sogar gleiche Aufgaben erledigen | ||
* Häufig benutzte Funktionen wurden aber mit der Zeit auf gemeinsam genutzte Skripte (Includes) ausgelagert, um zumindest im Ansatz dem [ | * Häufig benutzte Funktionen wurden aber mit der Zeit auf gemeinsam genutzte Skripte (Includes) ausgelagert, um zumindest im Ansatz dem [https://de.wikipedia.org/wiki/Don’t_repeat_yourself DRY-Prinzip] zu entsprechen | ||
* Die Skripte können je nach Distribution an unterschiedlichen Orten, zum Beispiel <tt>/etc/rc.d</tt> oder <tt>/etc/init.d</tt>, liegen, und auch die Aktivierung und Deaktivierung von Diensten kann abhängig von der Distribution unterschiedlich erfolgen – zum Beispiel durch symbolische Links in <tt>/etc/rcX.d</tt> oder einem Eintrag in der <tt>/etc/rc.conf</tt> | * Die Skripte können je nach Distribution an unterschiedlichen Orten, zum Beispiel <tt>/etc/rc.d</tt> oder <tt>/etc/init.d</tt>, liegen, und auch die Aktivierung und Deaktivierung von Diensten kann abhängig von der Distribution unterschiedlich erfolgen – zum Beispiel durch symbolische Links in <tt>/etc/rcX.d</tt> oder einem Eintrag in der <tt>/etc/rc.conf</tt> | ||
* Für SysVinit ist es ''nicht zuverlässig'' möglich, Dienste sauber zu beenden | * Für SysVinit ist es ''nicht zuverlässig'' möglich, Dienste sauber zu beenden | ||
* In der Regel wird das Skript entweder einen Prozess anhand seiner gespeicherten Prozess-ID beenden oder aber mit [ | * In der Regel wird das Skript entweder einen Prozess anhand seiner gespeicherten Prozess-ID beenden oder aber mit [https://wiki.ubuntuusers.de/killall killall] alle in Frage kommenden Prozesse beenden | ||
* Ausnahme hiervon sind Dienste, welche eine eigene Logik zum Beenden haben | * Ausnahme hiervon sind Dienste, welche eine eigene Logik zum Beenden haben | ||
* Ein bekannter Dienst welcher sich beispielsweise nicht sauber beenden lässt, wäre NRPE, der für Monitoring über [ | * Ein bekannter Dienst welcher sich beispielsweise nicht sauber beenden lässt, wäre NRPE, der für Monitoring über [https://de.wikipedia.org/wiki/Nagios Nagios] oder [https://de.wikipedia.org/wiki/Icinga Icinga] benötigt wird | ||
==== Upstart ==== | ==== Upstart ==== | ||
; Neuentwicklung eines Init-Systems | ; Neuentwicklung eines Init-Systems | ||
* Im Gegensatz zu dem nachfolgend beschriebenen systemd, welches mit Abhängigkeiten arbeitet, wird hier alles über [ | * Im Gegensatz zu dem nachfolgend beschriebenen systemd, welches mit Abhängigkeiten arbeitet, wird hier alles über [https://de.wikipedia.org/wiki/Ereignis_%28Programmierung%29 Events] geregelt | ||
* Upstart ist der erste Schritt zur Vereinfachung der Init-Skripte, welche nun unter <tt>/etc/init</tt> liegen | * Upstart ist der erste Schritt zur Vereinfachung der Init-Skripte, welche nun unter <tt>/etc/init</tt> liegen | ||
* Ein weiterer Unterschied ist, dass zum Deaktivieren eines Services die Events im Init-Skript deaktiviert werden müssen (bis Version 1.3) | * Ein weiterer Unterschied ist, dass zum Deaktivieren eines Services die Events im Init-Skript deaktiviert werden müssen (bis Version 1.3) | ||
* systemd arbeitet hier wie auch schon SysVinit mit [ | * systemd arbeitet hier wie auch schon SysVinit mit [https://wiki.ubuntuusers.de/ln#Symbolische-Verknuepfungen Symbolischen Verknüpfungen] | ||
* Upstart greift bei weitem nicht so tief in ein vorhandenes System ein | * Upstart greift bei weitem nicht so tief in ein vorhandenes System ein | ||
* Unter anderem wird auch nicht verlangt Konfigurationen über bestimmte, vorgegebene, Konfigurationsdateien zu erledigen | * Unter anderem wird auch nicht verlangt Konfigurationen über bestimmte, vorgegebene, Konfigurationsdateien zu erledigen | ||
Zeile 26: | Zeile 26: | ||
* Dies war früher ein häufiger Kritikpunkt | * Dies war früher ein häufiger Kritikpunkt | ||
* Upstart wurde neben Ubuntu auch eine Zeit lang von anderen Distributionen wie zum Beispiel [https://fedoraproject.org/de/ Fedora] verwendet | * Upstart wurde neben Ubuntu auch eine Zeit lang von anderen Distributionen wie zum Beispiel [https://fedoraproject.org/de/ Fedora] verwendet | ||
* Viele Entwickler sind aber nicht bereit an Upstart mitzuentwickeln, da Canonical hierzu eine [ | * Viele Entwickler sind aber nicht bereit an Upstart mitzuentwickeln, da Canonical hierzu eine [https://www.canonical.com/contributors Beitragszustimmung] verlangt | ||
==== OpenRC ==== | ==== OpenRC ==== | ||
[ | [https://en.wikipedia.org/wiki/OpenRC OpenRC] | ||
* häufig bei [ | * häufig bei [https://de.wikipedia.org/wiki/Gentoo Gentoo]-Systemen | ||
[[Kategorie:Init]] | [[Kategorie:Init]] |
Version vom 7. April 2025, 14:47 Uhr
Entwicklung
Im Laufe der Entwicklung hin zu modernen Unix-Systemen wurde vieles an grundlegender Software immer wieder modernisiert, dazu gehört auch das Init-System, welches für das Starten von Prozessen verantwortlich ist
SysVinit
- SysVinit ist ein System zum Starten von Diensten
- Grundlegendes Design von 1983
- Daher gibt es weder Abhängigkeiten, noch Events und so wird dieses System modernen Desktops und Notebooks nicht mehr gerecht
- Dienste werden hier strikt der Reihe nach gestartet, unabhängig davon, ob diese parallel gestartet werden könnten
- SysVinit setzt auf viele Skripte, welche in weiten Teilen ähnliche oder sogar gleiche Aufgaben erledigen
- Häufig benutzte Funktionen wurden aber mit der Zeit auf gemeinsam genutzte Skripte (Includes) ausgelagert, um zumindest im Ansatz dem DRY-Prinzip zu entsprechen
- Die Skripte können je nach Distribution an unterschiedlichen Orten, zum Beispiel /etc/rc.d oder /etc/init.d, liegen, und auch die Aktivierung und Deaktivierung von Diensten kann abhängig von der Distribution unterschiedlich erfolgen – zum Beispiel durch symbolische Links in /etc/rcX.d oder einem Eintrag in der /etc/rc.conf
- Für SysVinit ist es nicht zuverlässig möglich, Dienste sauber zu beenden
- In der Regel wird das Skript entweder einen Prozess anhand seiner gespeicherten Prozess-ID beenden oder aber mit killall alle in Frage kommenden Prozesse beenden
- Ausnahme hiervon sind Dienste, welche eine eigene Logik zum Beenden haben
- Ein bekannter Dienst welcher sich beispielsweise nicht sauber beenden lässt, wäre NRPE, der für Monitoring über Nagios oder Icinga benötigt wird
Upstart
- Neuentwicklung eines Init-Systems
- Im Gegensatz zu dem nachfolgend beschriebenen systemd, welches mit Abhängigkeiten arbeitet, wird hier alles über Events geregelt
- Upstart ist der erste Schritt zur Vereinfachung der Init-Skripte, welche nun unter /etc/init liegen
- Ein weiterer Unterschied ist, dass zum Deaktivieren eines Services die Events im Init-Skript deaktiviert werden müssen (bis Version 1.3)
- systemd arbeitet hier wie auch schon SysVinit mit Symbolischen Verknüpfungen
- Upstart greift bei weitem nicht so tief in ein vorhandenes System ein
- Unter anderem wird auch nicht verlangt Konfigurationen über bestimmte, vorgegebene, Konfigurationsdateien zu erledigen
- Die Dokumentation wurde vor allem in den letzten Versionen stark ausgebaut
- Dies war früher ein häufiger Kritikpunkt
- Upstart wurde neben Ubuntu auch eine Zeit lang von anderen Distributionen wie zum Beispiel Fedora verwendet
- Viele Entwickler sind aber nicht bereit an Upstart mitzuentwickeln, da Canonical hierzu eine Beitragszustimmung verlangt
OpenRC
- häufig bei Gentoo-Systemen