Я хотел бы дать приоритет команде 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 не запутался.

Другие вопросы по тегам