tarefa cron para ativar o áudio não está funcionando

1

Eu configurei duas tarefas do cron para silenciar o áudio da minha área de trabalho à noite e, em seguida, ativar o som pela manhã (para que os e-mails e outras notificações não me acordem):

lumpy@cheetoserver:~$ crontab -e

# At 10:15 PM every night, mute the volume
15 22 * * * /usr/bin/amixer -q set Master mute

# At 7AM every morning, unmute the volume
0 7 * * * /usr/bin/amixer -q set Master unmute

O áudio é silenciado durante a noite, mas nunca é ativado de manhã. No entanto, se eu simplesmente executar o comando 7AM unmute no shell:

/usr/bin/amixer -q set Master unmute

... o áudio é ativado imediatamente.

Eu testei os dois comandos antes de inseri-los no crontab, e eles silenciaram e ativaram o som imediatamente (ou seja, não é necessário dois toques para neutralizar um único mudo ou algo parecido).

Alguém pode esclarecer por que isso não está funcionando?

    
por Lumpy Cheetosenberg 10.02.2017 / 18:43

1 resposta

1

Encontrei outros posts de pessoas com exatamente o mesmo problema. O problema parece ser que a tarefa cron é executada sem o contexto necessário , e a adição de export DISPLAY=:0 a cada tarefa é a solução:

lumpy@cheetoserver:~$ crontab -e

# At 10:15 PM every night, mute the volume
15 22 * * * export DISPLAY=:0 && /usr/bin/amixer -q set Master mute

# At 7AM every morning, unmute the volume
0 7 * * * export DISPLAY=:0 && /usr/bin/amixer -q set Master unmute

Por questões de integridade, acrescentarei que várias soluções mencionaram a alteração de set Master nas duas tarefas acima para set Master playback . Isso não fez diferença no meu caso, mas se a primeira solução não resolver o seu problema, você pode tentar isso.

    
por 11.02.2017 / 22:36