Am Samstag, 19. März 2022, 12:31:48 CET schrieb Sebastian Siebert:
Am 18.03.22 um 13:52 schrieb tux-online:
Hallo Liste!
Ich möchte nach dem Start Befehle ausführen lassen. Das hat lange Zeit wunderbar mittels Skripten unter /usr/local/bin und einem Aufruf derselben unter /etc/init.d/boot.local funktioniert. Ich habe jetzt versucht diese Aufrufe auf systemd umzustellen. https://www.redhat.com/sysadmin/replacing-rclocal-systemd
...
boot.local.service enthält:
########################################################################## ###### # mystartup.service # # This service unit is for testing my systemd startup service # By David Both # Licensed under GPL V2 # ########################################################################## ###### # This program should be placed in /usr/local/lib/systemd/system/. # Create a symlink to it from the /etc/systemd/system directory. #ln -s /usr/local/bin/boot.local
########################################################################## ######
[Unit]
Description=Runs /usr/local/bin/boot.local
[Service]
ExecStart=/usr/local/bin/boot.local
[Install]
WantedBy=multi-user.target
Hallo Oskar,
du willst sicherlich das Skript nach dem grafischen Dienst "display-manager.service" ausführen und dabei ist es allerdings auch als "oneshot" zu deklarieren, da es kein echter Dienst ist. Anschließend auch ein "RemainAfterExit" hinzufügen, um systemd den Exit-Status des Skriptes zu ermitteln und diesen dann bei Erfolg den Status als "active" anstatt "dead" zu markieren.
Ich habe daher mal dein o.g. Snipplet wie folgt angepasst.
--- Snip ---
[Unit] Description=Runs /usr/local/bin/boot.local After=display-manager.service
[Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/local/bin/boot.local
[Install] WantedBy=multi-user.target
--- Snap ---
-- Gruß Sebastian - openSUSE Member (Freespacer) - Wichtiger Hinweis zur openSUSE Mailing Liste: https://de.opensuse.org/openSUSE:Mailinglisten_Netiquette
Hallo Sebastian! Vielen Dank! Ich habe die Ergänzungen in boot.local.service eingetragen. Das Ergebnis sieht wie folgt aus: systemctl enable boot.local systemctl status boot.local ○ boot.local.service - Runs /usr/local/bin/boot.local Loaded: loaded (/etc/systemd/system/boot.local.service; enabled; vendor > Active: inactive (dead) systemctl start boot.local Die 3 Befehle machen das Gewünschte, beinahe jedenfalls. Der letzte Befehl löst die gewünschten Aktionen aus, allerdings ist der Dienst nach einem Neustart unbekannt: systemctl status boot.local Unit boot.local.service could not be found. Damit passiert auch nichts automatisch. Hast Du dazu auch noch eine Idee? Danke und viele Grüße Oskar