Я хотел бы запустить следующую команду через crontab:

30 12 * * * natasha /usr/bin/canberra-gtk-play --file="/home/natasha/Audio/Dat_Jene_Tabletki.wav" --volume=15 --loop=3

но эта команда не выполнена. Запуск соответствующей команды прямо из командной строки работает.

Линии

4 12 * * * natasha /usr/bin/cvlc /home/natasha/Audio/Dat_Jene_Tabletki.wav 55 16 * * * natasha /usr/local/bin/mpg123 -q /home/natasha/Downloads/file.mp3

выполняются правильно с помощью crontab, но canberra-gtk-play не работает.

Может ли кто-нибудь помочь мне с этим, пожалуйста?

Моя система openSUSE 42.1.

Заранее спасибо.

С уважением, Наталья

1 ответ1

0

canberra-gtk-play не работает с cron, потому что, как следует из названия, это зависит от графического инструментария GTK+, для которого требуется доступ к Xorg или другому серверу X11 или Wayland.

Задания Cron не имеют легкого доступа к X11, потому что адрес сервера не всегда одинаков - вы можете попробовать установить DISPLAY=":0" и аналогично XAUTHORITY=… , но они могут измениться после перезагрузки.

Напротив, адрес звуковой службы PulseAudio всегда находится в фиксированном месте, а в системах, которые не используют PA, это просто вопрос прямого доступа к /dev.

(Если вы используете Wayland, canberra-gtk-play сможет подключиться к нему, но.)


Я бы посоветовал забыть canberra-gtk-play потому что ... если все, что вам нужно - это воспроизводить звук, зачем вам вообще беспокоиться об инструментах, требующих X11?

Лучшим вариантом будет paplay mpv или даже mplayer .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .