Fazit

Upstart räumt mit den alten unübersichtlichen Runlevels auf, bietet mit den einfach aufgebauten Jobs eine viel simplere Konfiguration und beschleunigt durch die Parallelisierung den Systemstart. Der System-V-Init-Ersatz ist jedoch kein Allheilmittel: Je nachdem, wie die Jobs voneinander abhängen, muss Upstart im schlimmsten Fall doch wieder stur einen nach dem anderen abarbeiten.

Upstart befindet sich immer noch in der Entwicklung. Mit jeder neuen Version und jedem Ubuntu-Release kommen neue Funktionen oder kleinere Verbesserungen hinzu. In Zukunft soll es beispielsweise auch Ereignisse zeitgesteuert auslösen und somit gleichzeitig die Aufgaben von »cron« übernehmen. Die Entwickler von Upstart weisen deshalb auch ausdrücklich darauf hin, dass sich der Aufbau der Konfigurationsdateien durchaus noch ändern kann – was auch laufend geschieht. So kam in Version 1.3 das Schlüsselwort »kill signal« hinzu, mit dem man in einer Job-Datei das SIGTERM-Signal abfangen kann.

Den aktuellen Entwicklungsstand findet man auf der Launchpad-Seite [2], die Upstart-Homepage zeigte bei Redaktionsschluss immer noch auf die veraltete Version 0.6.7 [1]. Wer eigene Jobs schreiben oder tiefer in ihre Programmierung einsteigen möchte, sollte unbedingt das ausführliche Cookbook studieren [3]. Es enthält viele wertvolle Tipps sowie Standardlösungen für häufig auftauchende Probleme und Fragen.

Auf Upstart trifft man im Moment lediglich in Ubuntu, seinen offiziellen Derivaten (wie Kubuntu), den direkt darauf aufbauenden Distributionen, wie Linux-Mint, im bereits erwähnten RHEL 6 und in Googles Chromium OS. Die Tage in RHEL dürften allerdings gezählt sein, ist doch Fedora seit Version 15 auf den Konkurrenten »systemd« umgestiegen [4]. Ihn favorisieren auch viele Distributionen. Da Canonical sein eigenes Baby sehr wahrscheinlich nicht verstoßen wird, dürfen sich Administratoren zukünftig wohl mit gleich mehreren Init-Varianten herumschlagen. (ofr)

Troubleshooting

Auftauchende Probleme protokolliert Upstart im Syslog – unter Ubuntu 11.10 also beispielsweise in »/var/log/syslog« (Abbildung 2). Wem die dort hinterlegten Informationen nicht ausreichen, macht Upstart mit

Abbildung 2: Gibt man dem Kernel den Parameter
initctl log-priority info

oder sogar

initctl log-priority debug

noch gesprächiger. Im letzten Fall protokolliert es jeden einzelnen seiner Schritte. Das Kommando nützt freilich nichts, wenn die Probleme schon während des Bootens aufgetaucht sind. Dann kann man dem Kernel den Parameter »--verbose« oder für die noch geschwätzigere Variante »--debug« anhängen (unter Ubuntu indem man nach dem Einschalten die [Umschalt]-Taste gedrückt hält, dann [e] tippt, mit den Pfeiltasten zur Zeile »linux /boot/vmlinuz ...« fährt, [Ende] drückt, mit englischer Tastaturbelegung »--debug« anhängt und [Strg+X] bemüht). Solange noch kein Syslog-Daemon aktiv ist, wandern alle Meldungen in das Kernel-Log. Man muss folglich sowohl das Kernel-Log als auch das Syslog im Auge behalten. Eine konkrete Job-Datei »messen.conf« klopft

init-checkconf messen.conf

auf Tippfehler ab. Anschließend mahnt

initctl check-config

noch alle in »/etc/init« abgelegten Jobs an, deren Ereignis-Bedingungen sich nie erfüllen – die also von sich aus niemals starten oder stoppen werden. Die beiden Befehle gibt es in dieser Form übrigens erst seit Upstart 1.3, das sein Debüt in Ubuntu 11.10 feierte. Schon seit Upstart 0.6.4 lässt sich auch ein Überblick über alle Jobs ausgeben:

initctl show-config -e > ausgabe.txt

Die dabei entstandene Datei wandelt auf Wunsch »initctl2dot« in ein Graphviz-Diagramm um:

initctl2dot -f ausgabe.txt -o ausgabe.dot

aus dem Graphviz wiederum einen Abhängigkeitsgraphen zeichnet:

dot ausgabe.dot -Tps > diagramm.ps

Das Ergebnis ist dann eine Postscript-Datei, in der man für jeden Job sieht, von welchen anderen er abhängt beziehungsweise welche seiner Kollegen nur auf seinen Start warten (Abbildung 6). Das Diagramm ist übrigens nicht ganz so verwirrend, wie es vielleicht auf den ersten Blick erscheint.

Abbildung 6: … lassen sich in ein wesentlich übersichtlicheres Diagramm verwandeln. Die Pfeile kennzeichnen dabei die Abhängigkeiten der Jobs untereinander.

Der Autor

Tim Schürmann ist selbstständiger Diplom-Informatiker und derzeit hauptsächlich als freier Autor unterwegs. Zu seinen Büchern gesellen sich zahlreiche Artikel, die in Zeitschriften und auf Internetseiten in mehreren Ländern veröffentlicht wurden.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

ADMIN-Tipp: Autologin auf der Console

Vor allem in Testumgebungen ist es mühsam, sich immer wieder aufs Neue einloggen zu müssen. Ein automatisches Login lässt sich außer auf dem grafischen Desktop auch auf der Linux-Console realisieren.

Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Ausgabe /2014

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit Rex
  • mit anderer Konfigurationsmanagement-Software