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 12/2016: Neue Desktops

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

Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...
Linux auf externe SSD installieren
Roland Seidl, 28.10.2016 20:44, 1 Antworten
Bin mit einem Mac unterwegs. Mac Mini 2012 i7. Würde gerne Linux parallel betreiben. Aber auf e...