Crontab + VLC Player

MetalForLive

Admiral
Registriert
Sep. 2011
Beiträge
8.183
Hallo zusammen,

ich habe ein Rapsberry Pi 5 auf dem Ubuntu in der Desktopversion läuft.
Ziel ist es, das Raspi für eine Veranstaltung hinter einen TV zu hängen und ein Video abzuspielen was permanent geloopt wird.
Den VLC Player hab ich so eingestellt, dass er genau das tut.

Nun wollte ich aber einen Script bauen, damit das Video immer beim start des Raspis abgespielt wird.
ich habe hierzu schon etliche Forenbeiträge gelesen aber bekomme es einfach nicht zum laufen.

Crontab -e sieht wie folgt aus:

Code:
@reboot sleep 20 && /home/user/videoscript.sh

Hab es auch schon mit sleep bis 120 sekunden und auch ganz ohne probiert.

der script selbst sieht wie folgt aus:


Code:
#!/bin/bash
DISPLAY=:0 cvlc /home/user/Videos/video.mp4

ich habe geprüft, das crontab auch bei dem richtigen User genutzt wurde und nicht mit root o.ä.
Ich habe mit "echo $DISPLAY" geprüft, dass die Umgebungsvariable für den Xserver passt.
Ich habe mit "grep CRON /var/log/syslog" geschaut ob dort etwas im log zu sehen ist was auf einen fehler hindeutet. Leider ist das Log nicht wirklich Hilfreich. Dort steht nur der Befehl der im crontab steht und "inf (No MTA installed, discarding output)".

Wenn ich den script per terminal ausführe, macht er genau das was er soll.
Nur mit Crontab klappt es nicht.

Hat jemand noch eine Idee?
 
was steht denn in den logs - gibts ein extra Cron.log?

vgl. https://cronitor.io/guides/where-are-cron-logs-stored

Im Script mal Output in ein File schreiben - uU fehlt was Environment im Falle des Cronjob - bei sh müsste das .profile das liefern - du testet uU nicht mit der sh sondern der bash (falls sh kein Alias oder link ist)
 
Versuche es mit dem kompletten Pfad anstatt nur dem Programm Namen. Du kannst nicht davon.l ausgehen das alle Umgebungsvariablen wie PATH gesetzt sind. Oder du änderst die Shebang auf #!/bin/bash --login
 
Welchen Desktop verwendest du denn? Gnome z.B. und ich bin mir sicher andere auch, hat Startelemente - da könntest du auch dein Script rein packen. In Gnome kann man das mit dem Tool Tweak (bzw. GNOME-Optimierung).
Bildschirmfoto vom 2024-10-01 14-07-38.png

Edit: Man braucht dazu leider noch eine .desktop Datei. Habe für Ubuntu noch autostart gefunden, da kann man nur das Script angeben.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: kieleich
MetalForLive schrieb:
Wenn ich den script per terminal ausführe, macht er genau das was er soll.
Nur mit Crontab klappt es nicht.
Das übliche Problem: Du hast die Umgebung nicht richtig gesetzt. Userumgebung != crontab als Fork über einen Systemprozess.

Merke: Wenn Crontab eingesetzt wird, mußt Du die Umgebung separat setzen! Auch alle Programmpfade etc.
 
Ich mag mich irren, aber crontab ist eher was für Hintergrundjobs, besonders beim starten wird vermutlich das Display device noch nicht initialisiert sein. Du hast zwar "sleep 20s" drin, aber der Prozess wurde dennoch schon gestartet, obwohl noch keine Ausgabe erfolgen kann.

Wie gesagt, kann mich irren, aber das wäre meine Vermutung warums nicht läuft.

Versuchs mal mit system.d
https://medium.com/@praveenadoni445...n-startup-on-ubuntu-with-systemd-98be1b3b847c
Hier kannst du angeben, ab wann der Prozess, in deinem Fall VLC, gestartet werden soll.
[Unit]
Description=My Application Auto Start
After=network.target (anstelle network müsste was anderes angegeben werden)
Aber auch hier bin ich mir nicht sicher, ob das der richtige Usecase ist.

Noch eine andere Möglichkeit, die Autostart Funktion von der Benutzeroberfläche zu verwenden, bzw. im Verzeichnis. Ist vermutlich für dich die geeignetste und einfachste Lösung? Immerhin willst du es ja als User am Bildschirm ausgeben, und nicht im Hintergrund starten.
/home/<user>/.config/autostart
Ich kann jetzt nur von Kubuntu reden, aber hier ist die Einstellung unter "starten und Beenden -> autostart" zu finden. Da lassen sich auch Shell scripts hinzufügen.
ich denke, dass das der richtige Use Case für dich wäre.

Ergänzung: Das hier könnte für dich vielleicht noch interessant sein.

https://wiki.ubuntuusers.de/Autostart/
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: nutrix
Es kann so einfach sein...
Ja nutze standard gnome, starte es nun mit der Autostart Funktion und das klappt auf anhieb.
Danke
 
  • Gefällt mir
Reaktionen: Alexander2 und JumpingCat
Zurück
Oben