Я хотел бы дать приоритет команде crontab над текущим аудиопотоком Ubuntu 18.04
Mp3 будет автоматически запускаться в указанное время с помощью crontab.
*/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
"Play" установлен Sox.
Проблема в том, что crontab не работает, когда вы просматриваете YouTube. Звук, инициированный Crontab, не будет воспроизводиться до тех пор, пока воспроизводимый аудиопоток не будет закрыт.
Я хочу, чтобы команда crontab работала, даже если вы смотрите YouTube.
1 ответ
Прямой вывод на текущий рабочий дисплей
Согласно этому посту:
sox не может быть запущен как запись cron, пока работает другое звуковое приложение
Для запуска sox/play из cronjob требуется экспортировать переменную DISPLAY, как если бы вы запускали приложение с графическим интерфейсом из crontab. Просто добавь export DISPLAY=:0 &&
к началу вашей команды вот так:
*/10 7-21 * * * export DISPLAY=:0 && /usr/bin/play /home/mo/document/1.mp3
Также обратите внимание, что при работе с cronjobs лучше использовать абсолютные пути (/usr/bin/play), чтобы cron не запутался.