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
Möchtest Du meine Arbeit unterstützen?
EIN KOMMENTAR SCHREIBEN:
Falls Du Fragen über das Thema hast oder Hilfe benötigst, verwende gern die Kommentarfunktion und ich werde Dir so bald wie möglich mit Rat und Tat zur Seite stehen. Vielen Dank für Deinen Besuch.
SOCIAL-MEDIA-KANÄLE:
Hat mein Beitrag Dir geholfen? Dann freue ich mich über Dein Follow auf Social Media! So erfährst Du als Erstes von neuen Beiträgen und unterstützt mich bei meinem Wachstum.
Funktioniert. Entschuldige für den Kommentar. Danke.
bei mir (Debian 11) muss der Eintrag wie folgt aussehen, sonst bekomme ich immer eine Fehlermeldung:
[Install]
WantedBy=multi-user.target
Alias=BeliebigerName.Service
Hallo Uwe, ich habe es mal sicherheitshalber mit aufgenommen. Ist mir jedoch neu, dass die Eingabe eines Alias zwingend erforderlich ist. Vielen Dank für deinen Beitrag!