Skip to content

Kapitel 13: Systemdienstverwaltung

13.1 Dienstverwaltungsbefehle (systemctl, Dienst starten, stoppen, neu starten)

systemctl - Systemdienstverwaltung:

Dienststatus überprüfen:

bash
sudo systemctl status dienstname     # Status eines Dienstes anzeigen
systemctl list-units --type=service  # Alle Dienste anzeigen
systemctl list-units --type=service --all  # Alle Dienste (inkl. inaktive) anzeigen

Dienst steuern:

bash
sudo systemctl start dienstname      # Dienst starten
sudo systemctl stop dienstname       # Dienst stoppen
sudo systemctl restart dienstname    # Dienst neu starten
sudo systemctl reload dienstname     # Konfiguration neu laden (ohne Unterbrechung)
sudo systemctl enable dienstname     # Dienst bei Systemstart aktivieren
sudo systemctl disable dienstname    # Dienst bei Systemstart deaktivieren

Beispiele:

bash
sudo systemctl start sshd            # SSH-Dienst starten
sudo systemctl restart nginx         # Nginx neu starten
sudo systemctl enable mysql          # MySQL bei Systemstart aktivieren

13.2 Autostart für Dienste beim Systemstart einrichten (häufig von Anfängern verwendet, z.B. Nginx, SSH)

Autostart aktivieren/deaktivieren:

bash
sudo systemctl enable dienstname     # Autostart aktivieren
sudo systemctl disable dienstname    # Autostart deaktivieren

Autostart-Status überprüfen:

bash
systemctl is-enabled dienstname      # Prüfen, ob Dienst aktiviert ist
systemctl list-unit-files --type=service  # Alle Dienste und ihren Aktivierungsstatus anzeigen

Häufige Dienste für Autostart:

  • sshd: SSH-Server (wichtig für Remote-Zugriff)
  • nginx/apache2: Webserver
  • mysql/mariadb: Datenbankserver
  • docker: Docker-Container-Engine
  • ufw: Firewall

Beispiel - Nginx Autostart einrichten:

bash
sudo systemctl start nginx           # Nginx starten
sudo systemctl enable nginx          # Autostart aktivieren
sudo systemctl status nginx          # Status überprüfen

13.3 Dienststatus anzeigen, Fehlerbehebung bei Dienststartfehlern

Fehlerbehebungsschritte:

Schritt 1: Dienststatus überprüfen

bash
sudo systemctl status dienstname
  • active (running): Dienst läuft normal
  • inactive (dead): Dienst ist gestoppt
  • failed: Dienst ist fehlgeschlagen

Schritt 2: Dienstprotokolle (Logs) anzeigen

bash
sudo journalctl -u dienstname      # Alle Protokolle für den Dienst anzeigen
sudo journalctl -u dienstname -f  # Protokolle in Echtzeit verfolgen
sudo journalctl -u dienstname --since "2024-01-01" --until "2024-01-02"

Schritt 3: Konfigurationsdatei überprüfen

bash
sudo dienstname -t                  # Konfiguration testen (bei einigen Diensten)
sudo nginx -t                       # Nginx-Konfiguration testen
sudo apache2ctl configtest          # Apache-Konfiguration testen

Schritt 4: Häufige Fehler beheben

  • Port bereits belegt: sudo ss -tulnp | grep Portnummer prüfen
  • Berechtigungsfehler: sudo chown -R benutzer:gruppe /pfad korrigieren
  • Konfigurationsfehler: Syntax in Konfigurationsdateien überprüfen
  • Abhängigkeiten fehlen: sudo apt install paketname installieren

Beispiel - SSH-Dienst startet nicht:

bash
sudo systemctl status sshd
# Fehlermeldung lesen
sudo journalctl -u sshd --since "today"
# Prüfen, ob Port 22 belegt ist
sudo ss -tulnp | grep 22
# SSH-Konfiguration überprüfen
sudo vim /etc/ssh/sshd_config
# Nach Fehlerbehebung Dienst neu starten
sudo systemctl restart sshd

Frei für alle Anfänger