##やりたいこと
- 非常に簡単でrasp piにおいて,crontabを使ってshファイルを実行させたい.
ファイルの内容は以下の通りで
bash
1#soundplay.sh 2mpg321 /home/user/soundfile.sh 3
これをcronで実行させています.mp3を再生するコマンドです.
###行った動作
0. $sudo crontab -e
でcrontabの内容を変更
*/1 * * * * sh /home/user/soundfile.sh
と追記
問題なく1分ごとに実行されており,初期優先出力先であるHDMIをつなぐと,音もHDMI接続したディスプレイから再生されます.
困っていること
logを見ても問題なく実行されているようなのですが,raspiに接続したスピーカーから音がなりません.
ターミナルから
bash
1sh soundplay.sh
で実行すれば音はなります.実行bashファイルや再生するmp3ファイルへのパスは通っているようです.
##原因?
- 環境変数がcronを実行する際に読み込まれていない?
※追記:どうやらraspberry pi の優先出力先がUSBスピーカーになっていないことが原因のようです.
- 優先出力先の設定
こちらを参考に/usr/share/alsa/alsa.conf
内に設定を追記しました.
cronで実行している際にこのalsa.conf
が読まれていないことが原因のようなのですが...
##知りたいこと
- cronでコマンドを実行する際と手打ちで実行する際とでは,参照される環境変数は違うのですか?
- 違うとしたらどのファイルをどのように読ませれば(環境変数のパスを通せば?)良いのでしょうか?
環境
- モデル:raspberry pi zeroW
- ディストリビューション
bash
1$ lsb_release -a 2No LSB modules are available. 3Distributor ID: Raspbian 4Description: Raspbian GNU/Linux 10 (buster) 5Release: 10 6Codename: buster
何卒宜しくお願いします.
##追記
皆様のご助言を受け,いくつか検証を続けました.
以下の手順で検証したところ,やはりsudo とuserでデフォルトオーディオ設定が異なっているようでした.
- 上述のcrontab の実行内容を
speaker-test
に→HDMI経由でピンクノイズ(設定した出力先ではない) sudo speaker-test
→HDMI経由でピンクノイズspeaker-test
→USBスピーカー経由でピンクノイズ
更にGUIから設定を確認しようとraspi-config
を開いたのですが,**
~~何故か'raspi-config: Advanced Options'内に'Audio'項目が見当たりません...**
sudo,userどちらもalsa.conf
の設定で優先出力先をUSBに指定していますし,Audio項がraspi-config
から消えたことに関しては完全に原因不明でお手上げです....
思い切ってクリーンインストールするべきしょうか~~
audio設定は別項にありました.お恥ずかしい.
しかしそこでもUSBがデフォルトになっていました.