Appearance
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) anzeigenDienst 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 deaktivierenBeispiele:
bash
sudo systemctl start sshd # SSH-Dienst starten
sudo systemctl restart nginx # Nginx neu starten
sudo systemctl enable mysql # MySQL bei Systemstart aktivieren13.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 deaktivierenAutostart-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 anzeigenHäufige Dienste für Autostart:
sshd: SSH-Server (wichtig für Remote-Zugriff)nginx/apache2: Webservermysql/mariadb: Datenbankserverdocker: Docker-Container-Engineufw: Firewall
Beispiel - Nginx Autostart einrichten:
bash
sudo systemctl start nginx # Nginx starten
sudo systemctl enable nginx # Autostart aktivieren
sudo systemctl status nginx # Status überprüfen13.3 Dienststatus anzeigen, Fehlerbehebung bei Dienststartfehlern
Fehlerbehebungsschritte:
Schritt 1: Dienststatus überprüfen
bash
sudo systemctl status dienstnameactive (running): Dienst läuft normalinactive (dead): Dienst ist gestopptfailed: 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 testenSchritt 4: Häufige Fehler beheben
- Port bereits belegt:
sudo ss -tulnp | grep Portnummerprüfen - Berechtigungsfehler:
sudo chown -R benutzer:gruppe /pfadkorrigieren - Konfigurationsfehler: Syntax in Konfigurationsdateien überprüfen
- Abhängigkeiten fehlen:
sudo apt install paketnameinstallieren
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