Kann Ubuntu ein Video über Cronjob abspielen?

2949
Sune Rasmussen

Ich entwickle ein Anzeigesystem für eine Lackiererei.
Ich habe einen Computer mit Ubuntu eingerichtet, um das Video auszuführen und auf einem Fernsehgerät anzuzeigen. Dabei wird ein PHP-Skript ausgeführt, das das Video stündlich über das Internet aktualisieren soll.

Das Skript ist so eingestellt, dass es per cron ausgeführt wird und jede Stunde (@hourly) ausgeführt wird. Fast das gesamte Skript läuft einwandfrei, aber die letzte Zeile, in der VLC Media Player ausgeführt wird, um das Video anzuzeigen, schlägt fehl. Wenn das Skript über die Befehlszeile ( php /path/to/cron.php) ausgeführt wird, startet der VLC Media Player einwandfrei. Aber wenn es in cron läuft, dann nicht.

Der Gedanke, den ich bekomme, ist, dass über cron ausgeführte Jobs einfach nicht die Möglichkeit haben, Anwendungen mit einer sichtbaren GUI auszuführen, aber ich hoffe wirklich, dass dies nicht die Antwort ist.

Bitte hilf mir, diesen zu knacken!

7

2 Antworten auf die Frage

6
whitequark

Um etwas auf einem X-Server anzuzeigen, muss der X-Client (wie vlc) eine Umgebungsvariable DISPLAYsetzen, die die Netzwerkadresse des X-Servers definiert. In fast allen Fällen (einem lokalen X-Server) sollte es zugewiesen werden :0.

Sie können diese Variable in Ihrem Skript festlegen oder einfach ausführen bash -c "DISPLAY=:0 vlc $vlcopts"(natürlich ersetzen $vlcopts).

Das ist fantastisch! Ich habe nie an die Variable DISPLAY gedacht. Nun, Sie denken vielleicht, dass dies nicht schwer war, aber Sie haben mein Problem gelöst. Danke vielmals! Sune Rasmussen vor 13 Jahren 1
2
moolinux

Sie können auch verwenden:

@Stundenbildschirm -d -m vlc-wrapper /path/to/file/foo.flv --novideo --volume 700 --repeat --rc-fake-tty

Damit vlc funktioniert. Es gibt hier einen detaillierten Prozess: http://michaelchrisco.com/wiki/index.php?title=Set_up_VLC_as_a_cron_job