Script bei System- und Neustart mit systemd automatisch starten (Linux Anleitung)

Ein oder mehrere Scripts bei Systemstart und Neustarts automatisch starten zu lassen, ist mit dem System- und Sitzungs-Manager systemd möglich. Die Konfiguration funktioniert bei fast allen gängigen Linux Servern und Systemen identisch. Ob Debian, Ubuntu oder auf einem Raspberry-PI. Die Verwaltungskomponente ist bei fast allen Distributionen bereits von Anfang an integriert. 

Das Tool kann mit dem Befehl: apt-get install systemd installiert werden, sollte diese Komponente noch nicht auf dem System vorhanden sein. Alle Prozesse, die bei dem Start eines Computers oder Serversystems gestartet werden, starten soweit möglich immer parallel, um den Bootvorgang so kurz wie möglich zu halten. Systemd holt seine Vorgaben und Konfigurationen aus Dateien. 

In dieser Anleitung erfährst Du, wie Du ein ausführbares Shell-Script in solch einer Datei hinterlegen kannst, sodass bei einem Systemstart oder Neustart das Script bereits von Anfang an gestartet und ausgeführt wird.

Selbstverständlich können so nicht nur Shell-Scripts, sondern auch z.B. Python- und Java-Anwendungen oder Firewall-Regeln mit dem Start eines Linux-basierten Clients oder Servers sofort und automatisch gestartet werden.

Inhaltsverzeichnis: Scripts automatisch bei Systemstart und Reboot unter Linux ausführen

Einen Service erstellen: Linux Script bei Start und Neustart des Systems automatisch ausführen lassen

Navigiere in das Verzeichnis /systemd/system und lege eine neue Datei (Service) an. Der Name kann beliebig ausgewählt werden. Vorteilhaft wäre natürlich eine Bezeichnung, die sich später leicht zuordnen lässt, sofern Du vorhaben solltest, mehrere Skripte für den automatischen Start hinzuzufügen.

Wichtiger Hinweis: Auf einem Raspberry PI befindet sich die Verwaltungskomponente „systemd“ nicht wie angegeben im Verzeichnis „etc“, sondern hier: cd /lib/systemd/system. Ansonsten funktionieren die Konfigurationen in der Regel identisch.

Schritt 1: Erstellung der Service-Datei für den automatischen Systemstart:

cd /etc/systemd/system

touch beliebiger-name.service

Schritt 2: Öffne die neu erstellte Service-Datei und konfiguriere diese mit dem Editor wie angegeben:

nano beliebiger-name.service

Trage die folgende Konfiguration in die Datei ein:

## Lege selbst eine beliebige Beschreibung fest, wozu dient die Ausführung des Scripts?

[Unit]

Description=Beliebiger Name Service

## Die Anweisung, das Script bei Systemstart auszuführen und der Pfad, wo sich das Script selbst befindet. Kann je nach Speicherort natürlich variieren.

[Service]

Type=simple ExecStart=/bin/bash /path/to/dein-script.sh

## Hier werden notwendige Informationen beschrieben, um den Service bei Systemstart direkt auszuführen.

[Install]

WantedBy=multi-user.target

Alias=BeliebigerName.Service



Schritt 3: Den Service für den Systemstart ausführbar machen (Rechtevergabe):

sudo chmod 644 /etc/systemd/system/beliebiger-name.service

Damit der Service beim Start und Reboot des Systems selbstständig gestartet wird:

sudo systemctl enable beliebiger-name.service

Schritt 4: Anweisung für den automatischen Start eines Scripts für Linux-Distributionen mit systemd abgeschlossen - Servicefunktionalität überprüfen:

Teste jetzt mithilfe eines Systemneustarts, ob der Service funktionstüchtig ist und das Script automatisch während des Bootvorgangs gestartet wird. Verwende dazu folgenden Befehl, um den Status zu überprüfen:

sudo systemctl status beliebiger-name.service

5 Kommentare on “Script bei System- und Neustart mit systemd automatisch starten (Linux Anleitung)

  1. Der ‚Alias‘ bewirkt, das wenn das Startskript in /lib/systemd/system liegt, ein Softlink erstellt wird in /etc/systemd/system, so das die Datei auch in diesem Ordner gesehen wird und auch (über diesen Link) editiert werden kann, ohne in das andere Verzeichnis wechseln zu müssen. (Eigentlich sollten User ihre Startskripte in /etc/systemd/system installieren, während das System diese in /lib/systemd/system installiert.).

  2. Hallo, ich habe ein Pi 4 mit Hifiberry dac 2 und möchte die Lautstärke mit einem Drehregler KY040 regeln. nun habe ich Scripts .py installiert und auch
    eine Autostart.sh die ich nun mit einem service wie beschrieben starten möchte. wenn ich mit Putty cd /lib/systemd/system eingebe komme ich gleich zu usr/lib/systemd/system. Bei dem befehl touch komt die Meldung „read-only file system“ somit kann ich das skript nicht erstellen und es ist dann auch nicht im angegebenen Ordner.
    ich muss beifügen das ich nicht viel übung im programmieren habe.
    Vielleicht können Sie mir helfen

  3. bei mir (Debian 11) muss der Eintrag wie folgt aussehen, sonst bekomme ich immer eine Fehlermeldung:

    [Install]

    WantedBy=multi-user.target
    Alias=BeliebigerName.Service

Schreibe einen Kommentar

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