AA_start_mrozsz_sxc_868626.jpg

© Mrozsz, sxc.hu

Eigene Dienste mit Upstart zünden

Durchstarten

Unter Ubuntu wacht der SysV-Init-Ersatz Upstart über die komplexen Vorgänge beim Systemstart. Mit dem richtigen Know-how fügen Sie bei Bedarf hier ein eigenes Startskript ein.

Nachdem der Kernel die Hardware initialisiert hat, reicht er unter Ubuntu die Kontrolle über das System direkt an das Programm Upstart weiter. Diesem wiederum fällt die Aufgabe zu, die Hardware einzurichten und alle für den Betrieb notwendigen Dienste zu starten. Auf einem modernen Linux-System sind das mittlerweile eine ganze Menge – angefangen beim Druckdienst Cups über das X-Window-System bis zum Gnome Display Manager GDM, um nur drei der bekannteren Gesellen zu nennen.

Versteckspiel

Auf der Festplatte suchen Sie ein Programm namens Upstart vergebens. Das Werkzeug nutzt aus gutem Grund ein Pseudonym: Sobald der Linux-Kernel gestartet ist und den Computer in Beschlag genommen hat, ruft er stur das Programm /sbin/init auf. Um direkt nach dem Systemstart als erster Prozess mit der Nummer (PID) 1 die Arbeit aufzunehmen, versteckt sich Upstart folglich genau hinter diesem Namen. Deshalb finden Sie Upstart in der Liste mit allen Prozessen (ps -A) stets unter dem Pseudonym init; seine Manpage rufen Sie analog dazu über man init auf.

Schlangestehen

Um das gesamte System möglichst schnell hochzufahren, böte es sich an, alle Dienste gleichzeitig zu starten. Dummerweise hängen einige von anderen ab: So nimmt beispielsweise der Druckdienst Cups seine Arbeit erst auf, wenn das Netzwerk steht. Um solche Abhängigkeiten zu berücksichtigen, verwendet Upstart ein ereignisgesteuertes System: Sobald ein bestimmtes Ereignis eintritt, wie etwa "Netzwerk aktiviert" oder "TV-Stick angeschlossen", arbeitet Upstart alle zu diesem Ereignis passenden Jobs ab.

Hinter diesen Jobs verbergen sich einfache Textdateien, die die Befehle zum Starten der eigentlichen Dienste oder zum Einrichten der Hardware enthalten. Tritt zum Beispiel das Ereignis "Netzwerk aktiviert" auf, geht Upstart alle zugehörigen Dateien durch, von denen wiederum eine das Drucksystem hochfährt. Jobs voneinander unabhängiger Ereignisse bearbeitet Upstart parallel. So ist es etwa dem gerade eingestöpselten Fernsehempfänger in der Regel egal, ob das Netzwerk bereits läuft.

Arbeitgeber

Wollen Sie einen eigenen Dienst beim Systemstart automatisch hochfahren, erstellen Sie eine passende Job-Datei, die den Namen des Jobs als Dateinamen sowie das Suffix .conf trägt. Der Inhalt setzt sich recht einfach zusammen: Listing 1 zeigt ein Beispiel, das beim Systemstart die Software zum Messen von Lärm startet. In jeder Zeile steht eine Anweisung beziehungsweise Information an Upstart; Kommentare beginnen ähnlich wie in Shell-Skripten mit einer Raute.

Hinter den Schlüsselwörtern description und author steht in Anführungszeichen eine Beschreibung und der Name des Autors. Bei beiden handelt es sich um freiwillige Angaben. Über die Zeile start on legen Sie fest, bei welchen Ereignissen Upstart diesen Job auf die Reise schickt. Die Software benötigt mindestens ein Dateisystem (filesystem), um die gemessenen Daten abzulegen. In aktuellen Upstart-Versionen darf start on nur einmal auftauchen.

Listing 1

description "Beispiel für einen Job"
author "Tim Schürmann"
start on filesystem
exec /usr/bin/messdaemon --log=/var/log/laerm/messung.log
pre-start script
# Erstelle notwendiges Verzeichnis:
mkdir -p /var/log/laerm
end script
post-stop script
# Aufräumen:
rm -rf /var/log/laerm
end script
respawn
respawn limit 5 60
stop on filesystem

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Upstart und Systemd im Vergleich
    Upstart und Systemd – gleich zwei neue Ansätze konkurrieren um die Pole-Position beim Linux-Start. Wir unterziehen die Kandidaten einem konzeptionellen Vergleich.
  • Natty Narwhal mit neuen Tools in Upstart

    Die Upstart-Version in der kommenden Ubuntu-Release 11.04 (Natty Narwhal) bringt neue Tools mit, mit denen der Administrator Abhängigkeiten beim Systemstart analysieren und visualisieren kann.
  • Diensten auf der Spur
    Welche Dienste laufen auf Ihrem System? Welche davon lauschen auf Besucher aus dem Internet/LAN? Müssen Web-, SSH- oder FTP-Server permanent auf einem Desktop oder Laptop laufen? Fragen über Fragen, wir suchen Antworten.
  • Upstart erscheint in Version 1.8

    Die neue Version der Init- und Systemd-Alternative Upstart bringt nur zwei größere Änderungen mit.
  • Auch Debian ersetzt Sysvinit durch Upstart
    Das derzeitige Debian-Bootsystem Sysvinit soll wegen Unzuverlässigkeit schrittweise durch Upstart ersetzt werden, melden die Bootsystem-Maintainer auf der Entwickler-Announce-Mailingliste.
Kommentare

Infos zur Publikation

LU 09/2016: Ciao, Windows!

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

NOKIA N900 einziges Linux-Smartphone? Kein Support mehr
Wimpy *, 28.08.2016 11:09, 1 Antworten
Ich habe seit vielen Jahren ein Nokia N900 mit Maemo-Linux. Es funktioniert einwandfrei, aber ich...
Scannen nicht möglich
Werner Hahn, 19.08.2016 22:33, 3 Antworten
Laptop DELL Latitude E6510 mit Ubuntu 16,04, Canon Pixma MG5450. Das Drucken funktioniert, Scann...
Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...