udevと「su -c」は一貫して動作しません。

udevと「su -c」は一貫して動作しません。

すべてのサウンドの入力と出力を処理するためにコンピュータにJACKサーバーを設定しました。外部USBサウンドカード(名前:CODEC)を接続するときにudevがそれを検出するようにして、カードが接続され切断されたときを検出するudevルールを設定し、それに応じてコマンドを実行します。

ACTION=="add", SUBSYSTEM=="sound", ATTR{id}=="CODEC", RUN+="/home/myname/scripts/soundcard.sh connected"
ACTION=="remove", SUBSYSTEM=="sound", ENV{ID_MODEL}=="USB_Audio_CODEC", RUN+="/home/myname/scripts/soundcard.sh disconnected"

カードが検出されたことを確認するには、soundcard.shスクリプトを実行してください。

$ aplay -l > logfile1.txt

出力で見つかった内容は次のとおりです。

card 2: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio]
  Subdevices: 1/1

しかし、私が使うときは

$ su -c "aplay -l > logfile2.txt" -l myname

私はそうではありません!ユーザーとしてスクリプトを実行すると、別の結果が生成されます。どうなりますか?どんな手がかりがありますか?

関連情報