Um ein Script beim Systemstart von Ubuntu automatisch ausführen zu lassen, kann man beispielsweise ein Systemd service erstellen. Wie das funktioniert, erkläre ich in diesem Beitrag. Ich setze Ubuntu 22.04 ein.
Da Ubuntu auf Systemd basiert, ist es der einfachste Weg, ein Script beim Start auszuführen, eine Systemd-Dienstdatei zu erstellen und jedes Script über diesen Dienst während des Systemstarts auszuführen.
Erstelle zunächst einen solchen Dienst. Passe dabei den Namen des Dienstes für dein Vorhaben an:
nano /etc/systemd/system/RunScript
In diese Datei wird folgender Inhalt eingefügt:
[Unit] After=network.target [Service] ExecStart=/usr/local/bin/RunScript.sh [Install] WantedBy=default.target
Hiermit wird festgelegt, dass das in Zeile 5 angegeben Script ab bestehender Netzwerkverbindung, also ab Systemstart, ausgeführt werden soll. Nun wird das entsprechende Script im angegebenen Pfad noch angelegt:
nano /usr/local/bin/RunScript.sh
Ein Bash-Script beginnt immer mit:
#!/bin/bash
Danach folgt das eigentliche Script:
#!/bin/bash # Hier das Script
Nun werden noch die entsprechenden Berechtigungen für Systemd sowie die Ausführung des Scripts gesetzt:
chmod 744 /usr/local/bin/RunScript.sh chmod 664 /etc/systemd/system/RunScript
Aktiviere jetzt den Service:
systemctl daemon-reload systemctl enable RunScript
Der Service wurde aktiviert und ab den nächsten Neustart des Systems wird das hinterlegte Script ausgeführt.
Bei Fragen oder Anregungen freue ich mich natürlich über eure Kommentare.
Über mich
Ich bin Janis (aka. EurenikZ), 25 Jahre alt und komme aus der Nähe von Frankfurt am Main. Ich habe eine abgeschlossene IHK-Ausbildung zum Fachinformatiker für Systemintegration und arbeite als Junior IT-Administrator in einem IT-Systemhaus. Neben meinem IT-Blog beschäftige ich mich viel mit diversen IT-Themen und meinen Webseiten sowie Telegram Bots und biete IT-Dienstleistungen an.
Hallo,
bei mir wird nach
systemctl enable RunScript
Folgendes ausgegeben:
Failed to enable unit: File /etc/systemd/system/SysStart.service already exists
SysStart.service ist in diesem fall RunScript.
Gruß Marvinios
Nun, die Meldung besagt, es existiert bereits ein Dienst mit diesem Namen.
Danke für die antwort, das habe ich bereits erkannt. ich hätte mein problem etwas mehr beschreiben sollen tut mir leid.
Die datei SysStart.service habe ich erstellt und code reingeschreiben, als ich dann das Kommando wie oben genannt eingegebenhabe war ich verwirrt, weil natürlich exestiert die Datei ja. Ich will ja nur diesen Service auch aktivieren, beim neustart soll diese Datei ausgeführt werden aber es passiert nicht, obowhl die meldung sagt das es bereits exestiert.
Ich kann dir nicht ganz folgen, welchen Befehl du meinst. Unter [CODE] /etc/systemd/system/[/CODE] kommt der oben genannte Code hinein, unter [CODE]/usr/local/bin/[/CODE] dann der Code von deinem Script.