取消音频静音的 cron 任务不起作用

取消音频静音的 cron 任务不起作用

我设置了两个 cron 任务,在晚上将桌面的音频静音,然后在早上取消静音(这样电子邮件和其他通知就不会吵醒我):

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

音频在晚上被静音,但在早上永远不会取消静音。然而,如果我只是在 shell 中执行 7AM unmute 命令:

/usr/bin/amixer -q set Master unmute

...音频立即取消静音。

我在将这两个命令输入 crontab 之前测试了它们,并且它们立即静音和取消静音(即,不需要两次取消静音来抵消单个静音或类似的东西)。

任何人都可以阐明为什么这不起作用吗?

答案1

我发现其他人的帖子也有完全相同的问题。问题似乎是 cron 作业运行没有必要的上下文,并将export DISPLAY=:0解决方案添加到每个任务中:

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

为了完整起见,我将添加几个解决方案提到set Master将上面的两个任务更改为set Master playback.这对我的情况没有影响,但如果第一个解决方案不能解决您的问题,您可能想尝试这个。

相关内容