So starten Sie eine .sh-Datei beim Anmelden/Booten/Starten

So starten Sie eine .sh-Datei beim Anmelden/Booten/Starten

Ich glaube, ich werde langsam verrückt. Ich habe inzwischen mehrere Dinge ausprobiert, und nichts funktioniert.

Dies ist eine Ubuntu 22.04 LTS-Desktopversion.

Ich habe diese Anleitung ausprobiert: https://www.baeldung.com/linux/run-script-on-startup

Meine Skriptdatei ist ganz einfach: Starten Sie den Chromium-Browser im Kioskmodus mit dieser IP/Seite.

chromium-browser -kiosk -incognito https://google.com

Diese Datei habe ich als tiles.sh in /usr/local/ gespeichert. Dann habe ich chmod +x tiles.sh ausgeführt.

Erste Option, die ich versucht habe: crontab -e | wo ich hinzugefügt habe:

@reboot root /usr/local/tiles.sh

Als Zweites habe ich versucht, es in der unteren Zeile zu .profile im Home-Ordner hinzuzufügen. Nichts ...

sh /usr/local/tiles.sh

Ich habe dann versucht, die in Ubuntu integrierten „Startup Application Preferences“ zu verwenden, wieder nichts … https://itsfoss.com/manage-startup-applications-ubuntu/

Name; Tiles, Path: /usr/local/tiles.sh, I didn't add any comments.

Das vierte war mit einem tiles.service, der zum systemctl hinzugefügt wurde

[Unit]
description=Tiles
[Service]
Type=simple
ExecStart=/bin/bash /usr/local/tiles.sh
[Install]
WantedBy=multi-user.target

chmod 644 /etc/systemd/system/tiles.service

systemctl aktiviere tiles.service

systemctl start tiles.service

Neustart


Kann mir bitte jemand sagen, was ich hier falsch mache?

Bearbeiten:

  • Ich habe also einen Copy-Paste-Fehler mit fehlendem / behoben, sodass der Pfad unvollständig aussah

  • In einem Kommentar wurde darauf hingewiesen, dass „crontab -e“ nur für „On-Boot“-Aufgaben gedacht ist und dies daher nicht funktionieren würde.

Antwort1

Cron hatseinen eigenen WEG, das fest codiert und auf Folgendes eingestellt ist:

/usr/bin:/bin

Das bedeutet, dass nur Programme, die in diesen beiden Verzeichnissen installiert sind, über cron nach Namen gestartet werden können. Firefox ist unter installiert /usr/bin/firefox, sodass es firefoxfür cron ausreicht, es zu finden, aber Chromium ist als Snap-Paket installiert und befindet sich höchstwahrscheinlich unter /snap/bin/chromium. Das bedeutet, dass Ihr Skript es nicht unter finden kann chromiumund stattdessen den vollständigen Pfad benötigt. Es sollte funktionieren, wenn Sie Ihr Skript wie folgt ändern:

/snap/bin/chromium-browser -kiosk -incognito https://google.com

Im Allgemeinen können Sie type commandden Pfad zu einem Befehl mit ausführen. Dadurch type chromium-browsererhalten Sie den Pfad zur ausführbaren Datei.

Antwort2

Die Lösung bestand darin sudo apt purge chromium-browser -y, zu Firefox zu wechseln.

verwandte Informationen