Systemd Services erstellen | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

241 Dokumentationen verfügbar

Wissensdatenbank

Systemd Services Erstellen Anleitung

Zuletzt aktualisiert: 11.01.2026 um 11:53 Uhr

Systemd Services erstellen

Systemd ist das Standard-Init-System moderner Linux-Distributionen. Mit eigenen Service-Units können Sie Anwendungen als Hintergrund-Dienste betreiben, automatisch starten und überwachen.

Grundlagen

# Service-Status prüfen
sudo systemctl status nginx

# Service starten/stoppen
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx

# Autostart aktivieren/deaktivieren
sudo systemctl enable nginx
sudo systemctl disable nginx

# Alle Services anzeigen
sudo systemctl list-units --type=service

Eigenen Service erstellen

Service-Datei anlegen

sudo nano /etc/systemd/system/meine-app.service

Einfaches Beispiel

[Unit]
Description=Meine Node.js Anwendung
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/meine-app
ExecStart=/usr/bin/node server.js
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Service aktivieren

# Systemd neu laden
sudo systemctl daemon-reload

# Service starten
sudo systemctl start meine-app

# Autostart aktivieren
sudo systemctl enable meine-app

# Status prüfen
sudo systemctl status meine-app

Service-Typen

Type Beschreibung Anwendung
simple Hauptprozess startet direkt Node.js, Python-Apps
forking Prozess forkt sich Klassische Daemons
oneshot Einmalige Ausführung Skripte, Initialisierung
notify Sendet Bereit-Signal Moderne Dienste

Erweiterte Beispiele

Python/Gunicorn App

[Unit]
Description=Gunicorn Django App
After=network.target

[Service]
Type=notify
User=www-data
Group=www-data
WorkingDirectory=/var/www/django-app
Environment="PATH=/var/www/django-app/venv/bin"
ExecStart=/var/www/django-app/venv/bin/gunicorn \
    --workers 3 \
    --bind unix:/run/gunicorn.sock \
    myproject.wsgi:application
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Docker Container

[Unit]
Description=Docker Container für App
Requires=docker.service
After=docker.service

[Service]
Type=simple
Restart=always
RestartSec=10
ExecStartPre=-/usr/bin/docker stop app-container
ExecStartPre=-/usr/bin/docker rm app-container
ExecStart=/usr/bin/docker run --name app-container -p 8080:80 myapp:latest
ExecStop=/usr/bin/docker stop app-container

[Install]
WantedBy=multi-user.target

Mit Umgebungsvariablen

[Service]
# Einzelne Variablen
Environment="NODE_ENV=production"
Environment="PORT=3000"

# Oder aus Datei
EnvironmentFile=/etc/meine-app/env

Restart-Optionen

[Service]
Restart=always           # Immer neustarten
Restart=on-failure       # Nur bei Fehler
Restart=on-abnormal      # Bei Signal/Timeout
Restart=no               # Nie (Standard)

RestartSec=10            # Wartezeit vor Restart
StartLimitBurst=5        # Max. Restarts
StartLimitIntervalSec=60 # ...in diesem Zeitraum

Timer (Cron-Alternative)

# /etc/systemd/system/backup.timer
[Unit]
Description=Täglicher Backup Timer

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target
# /etc/systemd/system/backup.service
[Unit]
Description=Backup Script

[Service]
Type=oneshot
ExecStart=/opt/scripts/backup.sh
sudo systemctl enable backup.timer
sudo systemctl start backup.timer
sudo systemctl list-timers

Logs anzeigen

# Logs eines Services
sudo journalctl -u meine-app

# Live-Logs
sudo journalctl -u meine-app -f

# Logs seit letztem Boot
sudo journalctl -u meine-app -b

# Letzte 100 Zeilen
sudo journalctl -u meine-app -n 100

Troubleshooting

# Detaillierte Fehlermeldung
sudo systemctl status meine-app -l

# Service-Konfiguration prüfen
sudo systemd-analyze verify meine-app.service

# Abhängigkeiten anzeigen
sudo systemctl list-dependencies meine-app

Weitere Hilfe

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120