Execute canberra-gtk-play a partir do crontab

0

Eu gostaria de executar o seguinte comando através do crontab:

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

mas este comando não é executado. Execução do comando correspondente diretamente da linha de comando funciona.

As linhas

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

são executados corretamente com o crontab, mas o canberra-gtk-play não funciona.

Alguém poderia me ajudar com isso, por favor?

Meu sistema é o openSUSE 42.1.

Obrigado antecipadamente.

Atenciosamente, Natalia

    
por natasha 04.03.2017 / 11:19

1 resposta

0

O canberra-gtk-play não funciona no cron porque, como o próprio nome diz, ele depende do kit de ferramentas gráficas do GTK + - que requer que o Xorg ou outro servidor X11 ou Wayland esteja acessível.

As tarefas Cron não têm acesso fácil ao X11 porque o endereço do servidor nem sempre é o mesmo - você pode tentar definir DISPLAY=":0" e igualmente XAUTHORITY=… , mas elas podem ser diferentes após uma reinicialização.

Por outro lado, o endereço do serviço de som PulseAudio está sempre em um local fixo e, em sistemas que não usam PA, é apenas uma questão de acessar / dev diretamente.

(Se acontecer de você estar correndo Wayland, então canberra-gtk-play deve ser capaz de se conectar a ele, mas.)

Eu sugiro esquecer canberra-gtk-play porque ... se tudo o que você quer é tocar um som, por que você se incomodaria com ferramentas que requerem o X11?

Uma opção melhor seria paplay ou mpv ou mesmo mplayer .

    
por 04.03.2017 / 11:42