Feuer frei

Die fertige Konfigurationsdatei wandert nun unter dem Namen laermmessung.service in das Verzeichnis /etc/systemd/system/. Dort hinein gehören alle eigenen Konfigurationsdateien, die vom System mitgebrachte lagern hingegen unter /lib/systemd/system/. Mit dem Befehl

$ sudo systemctl daemon-reload

liest Systemd die geänderte Konfiguration. Den neuen Dienst startet schließlich der Aufruf

$ sudo systemctl start laermmessung.service

Dass der Dienst läuft, verrät ebenfalls das Kommando systemctl, diesmal allerdings mit dem Befehl status statt start (Abbildung 1). Eine Übersicht über die Befehle für die Software liefert die Tabelle "Systemctl-Kommandos".

Abbildung 1: Mit dem Kommando systemctl status cups.service erfahren Sie alle Einzelheiten über den Druckdienst.

Systemctl-Kommandos

Befehl Bedeutung
daemon-reload Konfiguration neu einlesen
start Unit Unit starten
stop Unit Unit kontrolliert stoppen
kill Unit Unit sofort beenden (Datenverlust möglich)
status Unit Status von Unit abfragen
diable Unit Unit deaktivieren und damit weder beim Systemstart noch auf Anfrage hochfahren

Wer hat's gesehen?

Das Werkzeug Systemctl hilft als kleiner Tausendsassa in vielen weiteren Lebenslagen. Ein einfaches systemctl liefert zunächst eine Liste aller laufenden Dienste (Abbildung 2). Ein besonderes Augenmerk verdient die Spalte active: Sie zeigt an, ob ein Dienst derzeit läuft (active), nicht arbeitet (inactive) oder ob bei seiner Inbetriebnahme ein Problem auftrat (maintenance). Über systemctl status Unit erfahren Sie weitere Informationen zum Zustand.

Abbildung 2: Systemctl zeigt eine Liste mit allen vorhandenen Diensten, ihrem Status und der Beschreibung an.

Per isolate weisen Sie Systemd an, die Units eines ganz bestimmten Targets herzustellen:

$ sudo systemctl isolate multi-user.target

Dieses Beispiel aktiviert alle Units, die für einen Mehrbenutzermodus ohne grafische Oberfläche notwendig sind. Für alle, die noch in Runleveln aus SysV-Init-Zeiten denken, liefert Systemd passende Targets mit, die das alte Verhalten simulieren. Beispielsweise wechselt:

$ sudo systemctl isolate runlevel5.target

in einen Systemzustand mit grafischer Benutzeroberfläche. Beim Booten aktiviert Systemd übrigens standardmäßig das Target default.target. Dahinter verbirgt sich ein symbolischer Link, der auf eine andere Konfigurationsdatei zeigt. Unter Fedora 15 ist dies noch das runlevel5.target, zukünftig schwenken die Entwickler wohl auf das Systemd-Pendant graphical.target um.

Mit Systemd hält auch ein neuer Befehl Einzug, um das komplette System kontrolliert herunterzufahren und auszuschalten:

$ sudo systemctl --force poweroff

Die alten Befehle wie shutdown und reboot funktionieren allerdings weiterhin, Systemd übersetzt sie passend. Wer anstelle von Systemctl eine grafische Oberfläche bevorzugt, greift zu Systemadm aus dem Paket systemd-gtk (Abbildung 3).

Abbildung 3: Mit Systemadm aktivieren und deaktivieren Sie alle vorhandenen Units bequem per Mausklick.

Systemd protokolliert penibel seinen Systemstart. Per systemd-analyze blame erfahren Sie, wie lang welcher Dienst für den Start benötigt hat (Abbildung 4), einen passenden netten Graphen erzeugt:

$ sudo systemd-analyze plot > ergebnis.svg
Abbildung 4: Systemd merkt sich, welche Dienste wie lange beim Start getrödelt haben.

Als Ergebnis erhalten Sie dann ein SVG-Bild in der Datei ergebnis.svg, das Sie beispielsweise in Inkscape oder einem geeigneten Browser begutachten (Abbildung 5).

Abbildung 5: Bei Bedarf erzeugen Sie ein Diagramm, das den Systemstart und die dabei benötigten Zeiten zeigt.

Altlasten

Um mit dem älteren SysV-Init-System kompatibel zu bleiben, wertet Systemd die klassischen Init-Skripte aus. Diese fasst es einfach als eine weitere Quelle für Konfigurationsdateien auf und verwandelt die eingelesenen Skripte intern in passende Units. Analog liest und interpretiert Systemd weitere bekannte Konfigurationsdateien ein. Dazu gehört beispielsweise /etc/fstab, dessen Einträgen das Programm als Mount- beziehungsweise Automount-Units auffasst.

Wer schon ein Startskript für das alte SysV-Init verfasst hat und dieses in eine Service-Datei umwandeln möchte, sucht vermutlich nach einer Möglichkeit, vor dem eigentlichen Programmstart noch Skripte zum Vorbereiten auszuführen. Davon gilt es sich in Systemd jedoch gedanklich zu verabschieden – zumindest fast: Mit der Variable ExecStartPre= im Abschnitt [Service] gelingt das immer noch:

ExecStartPre=/bin/rm -f /var/log/messungen

Den hinter dem Gleichheitszeichen angegebenen Befehl, der ein Shell-Skript sein darf, führt Systemd aus, bevor es den hinter ExecStart= genannten Dienst aktiviert. Analog gibt es noch ein ExecStartPost=, bei dem Systemd den angegebenen Befehl nach dem Start des Dienstes absetzt. Abschließend existiert noch ein ExecStop=.

Diesen Befehl ruft Systemd auf, um den Dienst stoppen. Nach den Vorstellungen der Systemd-Entwickler sollen die Funktionen dieser Hilfsprogramme jedoch möglichst in den Daemon selbst wandern. Deren Programmierer sind zudem angehalten:

  • möglichst keine Prozesse zu forken und nicht setsid() aufzurufen,
  • keine Benutzerrechte mit dem Daemon zu ändern (das übernimmt Systemd),
  • keine PID-Dateien zu erstellen,
  • einen Namen über den D-Bus zu beziehen, sofern der Daemon den D-Bus verwendet,
  • Systemd zum Logging zu benutzen,
  • über Systemd die Sockets zu erstellen und zu beobachten, und
  • SIGTERM für Anfragen zum Shutdown zu benutzen.

Mehr zur Interaktion mit Systemd zeigt Lennart Poettering in einem Blog-Beitrag [8].

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Die Neuerungen der Version 198

    Die frisch veröffentlichte Version bietet neben neuen Werkzeugen unter anderem auch die Möglichkeit, die Unit-Definitionen mit zusätzlichen Konfigurationsdateien zu überschreiben.
  • 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.
  • Neuerungen in Systemd

    Auf der Mailingliste hat Systemd-Entwickler Lennart Poettering Version 202 der Software angekündigt.
  • Systemd als Schaltzentrale für das Linux-System
    Systemd polarisiert die Community – und hat zugleich das Zeug dazu, alte Gräben zu schließen und eine einheitliche Basis für Linux zu bilden.
  • Systemd 209 freigegeben
    Die neue Version des Init-Systems bringt viele kleine Änderungen mit. So ist Systemd jetzt auf KDbus vorbereitet und übernimmt die Konfiguration von Netzwerkschnittstellen mit dem neuen Dienst Networkd.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...