Modius - Techblog

  • facebook
  • twitter
  • instagram
  • feedburner
  • github
  • youtube
  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

systemctl / systemd richtig verwenden

Veröffentlicht am 22. Januar 2016 von Christian Piazzi 1 Kommentar , Aktualisiert am 22. Januar 2016

Heute will ich mal etwas auf systemctl und systemd eingehen =)

Allgemein

systemd ist ein Init-System und System-Manager. Es handelt sich dabei um den neuen Standard für Linux Maschinen.

Starten und Stoppen von Servicen

Um eine systemd Dienst zu starten, werden die Befehle  der Unit-Datei des Dienstes verwenden. Um diesen Befehl auszuführen ist es wichtig auf dem System root zu sein. Der Befehl für das starten eines Dienstes könnte dann so aussehen.

Shell
1
systemctl start application.service

Alternativ kann man dazu auch eine Kurzschreibweise verwenden.

Shell
1
systemctl start application

Der Befehl zum Stoppen desDienstes ist fast identisch. Wir tauschen nur start durch stop.

Shell
1
systemctl stop application.service

Restart und Reloading

Zum Neustarten eines Dienstes kann der restart Befehl verwendet werden.

Shell
1
systemctl restart application.service

Wenn der Dienst in der Lage ist, seine Konfigurationsdateien neu zu laden ohne den eigentlichen Dienst neuzustarten, kann der reload Befehl verwendet werden.

Shell
1
systemctl reload application.service

Wenn man sich unsicher ist, ob der Dienst das neu laden der Konfigurationsdateien unterstützt kann man den folgenden Befehl verwenden.

Shell
1
systemctl reload-or-restart application.service

Hier wird erst versucht die Konfiguration neu zu laden. Sollte dies nicht möglich sein, wird der ganze Dienst neugestartet.

Enabling und Disabling von Services

Die obigen Befehle sind nützlich zum Starten oder Stoppen während der aktuellen Sitzung. Um systemd Dienste automatisch beim Booten zu starten, muss dies extra aktiviert werden. Dafür können wir den folgenden Befehl zur Hand nehmen:

Shell
1
systemctl enable application.service

Dieser Befehl legt einen symbolischen Link zur Service-Datei an. In der Regel wird dieser Link in /lib/systemd/system or /etc/systemd/system angelegt.

Wollen wir den Service nun nicht mehr beim Booten starten lassen, kann dies mit dem folgenden Befehl wieder deaktiviert werden.

Shell
1
sudo systemctl disable application.service

Status eines Services

Mit dem folgenden Befehl, kann der Status eines Services geprüft werden.

Shell
1
systemctl status application.service

Als Beispiel lassen wir uns mal den Status des httpd anzeigen.

Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@localhost ~]# systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: active (running) since Di 2015-09-01 12:50:37 CEST; 2min 37s ago
Main PID: 5422 (httpd)
   Status: "Total requests: 2; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─5422 /usr/sbin/httpd -DFOREGROUND
           ├─5424 /usr/sbin/httpd -DFOREGROUND
           ├─5425 /usr/sbin/httpd -DFOREGROUND
           ├─5426 /usr/sbin/httpd -DFOREGROUND
           ├─5427 /usr/sbin/httpd -DFOREGROUND
           └─5428 /usr/sbin/httpd -DFOREGROUND
 
Sep 01 12:50:37 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Sep 01 12:50:37 localhost.localdomain httpd[5422]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain....is message
Sep 01 12:50:37 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

Die Ausgabe gibt uns einen Überblick über den aktuellen Status des httpd. Hier würde wir auch sehen, wenn es Probleme mit dem httpd gibt. Als Beispiel kommentiere ich die letzten paar Zeilen einer vHost Datei aus und starte httpd neu. Nachdem der Neustart fehlgeschlagen ist, lasse ich mir wieder den Status des httpd anzeigen.

Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost conf.d]# systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: failed (Result: exit-code) since Di 2015-09-01 12:59:02 CEST; 1min 47s ago
  Process: 5691 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 5690 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 5690 (code=exited, status=1/FAILURE)
 
Sep 01 12:59:02 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Sep 01 12:59:02 localhost.localdomain httpd[5690]: httpd: Syntax error on line 353 of /etc/httpd/conf/httpd.conf: Syntax error on line 58 of /etc/httpd/conf.d/nagios....figuration
Sep 01 12:59:02 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Sep 01 12:59:02 localhost.localdomain kill[5691]: kill: cannot find process ""
Sep 01 12:59:02 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1
Sep 01 12:59:02 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
Sep 01 12:59:02 localhost.localdomain systemd[1]: Unit httpd.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.

Wir werden nun auf den Fehler in der entsprechenden Datei hingewiesen und können diesen ausbessern.
Damit haben wir erstmal die Grundlagen für systemclt / systemd durch.

Kategorie: Linux Tags: Deamon, Services, Status, systemctl, systemd

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Trackbacks

  1. Systemctl - Tipps und Tricks - Modius - Techblog sagt:
    27. Oktober 2020 um 15:41 Uhr

    […] ist mittlerweile jedem Admin der sich außerhalb der Windows Welt bewegt bekannt. Wie man mit systemctl Dienste starten und stoppen kann, haben ich hier im Blog schon vor einiger Zeit erklärt. Heute will ich ein paar nützliche […]

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Beliebte Artikel

  • ioBroker auf dem Raspberry Pi installieren und konfigurieren
  • MQTT Broker auf dem Raspberry Pi
  • Nextcloud https mit self-signed Zertifikat einrichten
  • Docker Container – anzeigen, starten, stoppen und löschen
  • systemctl / systemd richtig verwenden

Neueste Kommentare

  • Jens Franz bei Externe Festplatte an Fritzbox 7490 anschließen
  • Modius bei Python Flask App mit Docker deployen
  • Modius bei Eigenes Docker Images mit Dockerfile erstellen
  • Maximilian bei folium – Visualisierung von Geodaten mit Python
  • Der Werner bei Python Flask App mit Docker deployen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga 2 Icinga2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2021 · Outreach Pro on Genesis Framework · WordPress · Anmelden