夜にデスクトップのオーディオをミュートし、午前中にミュートを解除するように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
。これは私の状況には影響しませんでしたが、最初の解決策で問題が解決しない場合は、この解決策を試すことができます。