Upstart - Wie geht es besser oder schlechter als die anderen?

Upstart - Wie geht es besser oder schlechter als die anderen?
Als Upstart zum ersten Mal von Kanonisch konzipiert wurde, war das vorherrschende System immer noch sysvinit, das alles nacheinander begann und danach mehr oder weniger angehalten wurde. Es stellte sicher, dass das System auch anmutig geschlossen wurde. Dies machte es notwendig, andere Lösungen für Hot-Plugging-Geräte wie USB-Sticks und ähnliche Lösungen zu haben. Die Hauptidee der Designer bestand darin, es ereignisgesteuert zu machen. Upstart kann auch nicht modifizierte Sysvinit -Skripte ausführen. Dieses Projekt befindet sich nur im Wartungsmodus. Verwenden Sie diesen Beitrag daher als interessantes Stück. Sie können dieses System in alten aktualisierten Systemen treffen.

Wie unterscheidet sich der Start??

Upstart hat ein Modell, bei dem die Veranstaltung verfügbar ist. Vergleichen Sie dies mit Systemd, das Prozesse startet, die alle anderen Systeme laufen lassen. Der Hauptunterschied besteht darin, dass Upstart auf Ereignisse wartet und Systemd Abhängigkeiten koordiniert. Beide Systeme können regelmäßige Skripte ausführen und beide versuchen parallel zu beginnen. Da die Unterschiede so klein sind, können Upstart -Skripte normalerweise nur mit einer Systemd -Dienstdatei aufgerufen werden. Sie können auch unveränderte Systemvateien ausführen. In der Tat suchen beide standardmäßig nach einer alten Systemvateistruktur. Der große Unterschied ist, dass der Aufstart nach definierten Ereignissen sucht, um alles zu beginnen. Wenn Sie also Ihren eigenen Service hinzufügen möchten, müssen Sie herausfinden, in welchem ​​Kontext Sie Ihren Service benötigen. Normalerweise ist dies einfach, da Sie etwas wollen, das zum Beispiel auf Ihrem Desktop ausgeführt wird. Der Desktop beginnt mit Event Runlevel 5, sodass Sie dies in Ihrem Skript festlegen. Im Gegensatz dazu ist dies das grafische Ziel. In UPStart haben Sie auch andere Veranstaltungen, die Sie verwenden können, z. B. Montage-, Mount- und Tastaturanforderung. Diese werden mit Systemd über Sockets und DBUs behandelt.

Wie migrieren Sie Skripte?

Sie haben alle aktuellen Skripte in /etc /init, ihre Namen sind Jobname mit einer "Konf" -Einweiterung. Die Skripte sind nicht ausführbar, sie verweisen nur auf eine ausführbare Datei oder mehr, die ausgeführt werden sollten. In jedem Upstart -Skripte haben Sie definiert, auf welchem ​​Ereignis das Skript starten sollte und wann es aufhören sollte. Sie sollten auch Vorstart- und Post-Stop-Einträge haben. Diese werden die Umgebung vorbereiten und nach der Ausführung aufräumen. Ein Beispielskript finden Sie unten

Beschreibung "Ein einfaches Skript"
Starten Sie mit Runlevel [2345]
Stoppen Sie auf Runlevel [06]
respawnen
env script_env_var = '/path/to/Datei.Konfiguration '
chdir/path/to/script/
Exec Bash -Skript.Sch

In der Aussage von "Exec" heißt es, was passieren wird, wenn Sie sie manuell anfangen. Die Start- und Stoppanweisungen definieren, wann das Skript automatisch beginnt. Wie Sie sehen können, können Sie auch das Verzeichnis festlegen, in dem es ausgeführt wird. Es gibt noch viele weitere Aspekte, aber Sie sollten lernen, wie man herausmigriert.

Damit dieses Skript in Systemd funktioniert, müssen Sie eine Servicedatei erstellen.

Einheit]
Beschreibung = ein einfaches Skript
[Service]
Umgebung = script_env_var =/path/to/Datei.Konfiguration
WorkingDirectory =/path/to/script
ExecStart =/usr/bin/bash -Skript.Sch
Neu starten = immer
[Installieren]
Wantby by = multi-user.Ziel

Hier können Sie sehen, dass die gleichen Dinge passieren, aber mit anderen Schlüsselwörtern. Das Format ist einfach und auf den Punkt. Anstatt Runlevels zu haben, weisen Sie darauf hin, auf welches Ziel Ihr Skript möchte. Dies zeigt, dass es bei Systemd alles um Abhängigkeit und das Starten der spezifischen Umgebung dreht. Beachten Sie auch, dass der ExecStart auf einen globalen Pfad verweist, niemals einen lokalen Pfad verwendet.

Wo ist es hervorragend?

Upstart wurde für paralleles Verhalten entworfen, aber es wurde auch so konzipiert, dass es klein ist. Wenn Sie dies überall noch finden, befindet es sich in eingebetteten Systemen und Chromeos. Ja, Chromeos hatte es. Der Grund dafür ist, dass es von Anfang an auf Ubuntu aufgebaut wurde, zu dem Zeitpunkt, als Ubuntu als Standard -Anfangssystem nach dem Start hatte. Chromeos hat seitdem Gentoo als Basis eingesetzt.

Abschluss

Upstart ist ein interessantes Thema, aber hauptsächlich historisch. Möglicherweise benötigen Sie es nur, wenn Sie auf alte Systeme stoßen. Die häufigste Alternative unter Linux ist jetzt systemd. Wenn Sie Vorbehalte in Bezug auf SystemD haben, sollten Sie nach anderen minimalen Systemen suchen. Einer interessant ist der sauglose, Sinit. Es unterstützt drei Signale und Sie müssen alle Skripte selbst selbst schreiben oder die Skripte von jemand anderem ändern. Dies kann eine interessante Übung sein, ist jedoch nur dann nützlich, wenn Sie an einem sehr minimalen und spezialisierten System arbeiten.