web-dev-qa-db-de.com

Ich möchte dem Befehl crontab Vorrang vor dem aktuellen Audiostream Ubuntu 18.04 geben

Die MP3-Datei wird automatisch zur angegebenen Zeit mit crontab ausgeführt.

*/10 7-21 * * * play /home/mo/document/1.mp3
*/10 7-21 * * * sleep 20;play /home/mo/document/2.mp3
*/10 7-21 * * * sleep 40;play /home/mo/document/3.mp3

"spielen" installiert sox.

Das Problem ist, dass crontab nicht funktioniert, während Sie YouTube ansehen. Von Crontab initiiertes Audio wird erst wiedergegeben, wenn der aktuell wiedergegebene Audiostream geschlossen ist.

Ich möchte, dass der Befehl crontab funktioniert, auch wenn Sie YouTube ansehen.

2
짱구신

Direkte Ausgabe auf aktuell laufende Anzeige

Nach diesem Beitrag:

sox kann nicht als Cron-Eintrag ausgeführt werden, während eine andere Sound-App ausgeführt wird

Zum Ausführen von sox/play von einem Cronjob aus muss die Variable DISPLAY so exportiert werden, als ob Sie eine GUI-Anwendung von crontab ausführen würden. Fügen Sie einfach export DISPLAY=:0 && An den Anfang Ihres Befehls wie folgt ein:

*/10 7-21 * * * export DISPLAY=:0 && /usr/bin/play /home/mo/document/1.mp3

Beachten Sie auch, dass es beim Umgang mit Cronjobs am besten ist, absolute Pfade (/ usr/bin/play) zu verwenden, damit Cron nicht verwirrt wird.

4