Zum Inhalt springen

Init/System/Entwicklung: Unterschied zwischen den Versionen

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  IPv6/Host/Windows » Dual-Stack Lite » Nextcloud/Update » Init/System/Entwicklung
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 [http://de.wikipedia.org/wiki/Don’t_repeat_yourself DRY-Prinzip] zu entsprechen
* 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 [http://wiki.ubuntuusers.de/killall killall] alle in Frage kommenden Prozesse beenden
* 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 [http://de.wikipedia.org/wiki/Nagios Nagios] oder [http://de.wikipedia.org/wiki/Icinga Icinga] benötigt wird
* 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 [http://de.wikipedia.org/wiki/Ereignis_%28Programmierung%29 Events] geregelt
* 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 [http://wiki.ubuntuusers.de/ln#Symbolische-Verknuepfungen Symbolischen Verknüpfungen]
* 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 [http://www.canonical.com/contributors Beitragszustimmung] verlangt
* Viele Entwickler sind aber nicht bereit an Upstart mitzuentwickeln, da Canonical hierzu eine [https://www.canonical.com/contributors Beitragszustimmung] verlangt


==== OpenRC ====
==== OpenRC ====
[http://en.wikipedia.org/wiki/OpenRC OpenRC]
[https://en.wikipedia.org/wiki/OpenRC OpenRC]
* häufig bei [http://de.wikipedia.org/wiki/Gentoo Gentoo]-Systemen
* 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

OpenRC