
udev
USB HDDを自動的にマウントするためにRaspberry Pi(Debian)の簡単なルールを設定しました。/etc/fstab
私が持っている唯一のデバイスであり、そこで使用するデバイスなので、すべてのデバイスをインストールするスクリプトを実行します。これだけが必要ですが、スクリプトに渡されたいくつかの環境変数があることを確認し、たとえばいくつかの実験を実行するためにドライブのラベルとデバイスノード名を印刷しようとしました。
うまくいきましたが、今すぐ挿入すると、次のような結果が表示されます。
pi@Gawain ~ $ Disk TOSHIBA_EXT (/dev/sda1) plugged in.Mounting...
その後、次の行ではプロンプトは表示されませんが、スクリプトが正しく終了しないか、別のものではなく入力を待っていますpwd
。プロンプトを表示しません。
私はこれが小さな化粧品なので、あまり気にしないで、おそらくドライブを自動的にマウントするスクリプトを残しておきますが、なぜこれがうまくいくのか疑問に思います。
udevルール:
KERNEL=="sd*1", ACTION=="add", RUN+="/home/pi/scripts/mountUSB.sh"
USB.shマウント:
#!/bin/bash
CONSOLE="/dev/$(who | awk '{print $2}')"
echo "Disk $ID_FS_LABEL ($DEVNAME) plugged in.Mounting..." > $CONSOLE
sudo mount -a
答え1
端末に直接印刷すると、シェルはそれを認識しないため、プロンプトを再印刷する方法もわかりません。たとえば、実行すると同様の動作が発生します(sleep 1; echo foo) &
。
udevルールを印刷しないことをお勧めします(より一般的なようです。エラーが発生しない限り静かにしてください)。あなたに直接押してください。端末メッセージは寄生的です。