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 01/2015: E-Books im Griff

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

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.
Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 5 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...