オーディオミュートを解除するcron操作は機能しません。

オーディオミュートを解除するcron操作は機能しません。

夜にデスクトップのオーディオをミュートし、午前中にミュートを解除するように2つの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

夜は音声はミュートされますが、朝はミュートは解除されません。ただし、シェルで午前7時ミュート解除コマンドを実行すると、次のようになります。

/usr/bin/amixer -q set Master unmute

...オーディオはすぐにミュート解除されます。

両方のコマンドをcrontabに入力する前にテストしましたが、ただちにミュートとミュート解除が行われました(つまり、1つのミュートをキャンセルするために2回ミュート解除する必要はありません)。

これがうまくいかない理由について誰でも明らかにできますか?

答え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完全性を期すために、上記の2つのタスクを変更するために述べたいくつかのソリューションを追加しますset Master playback。これは私の状況には影響しませんでしたが、最初の解決策で問題が解決しない場合は、この解決策を試すことができます。

関連情報