1
udevはスクリプトの動作に影響を与え、dpkgが機能しなくなる
USBフラッシュドライブが挿入されるたびにシェルスクリプトを実行するように設定されたudevルールがあります。 udevがルールと一致すること、シェルスクリプトが正しいパラメータで手動で実行されたときに意図したとおりに実行されること、およびスクリプトが実行されていることを確認しました。これでドライブは正常にマウントされ、dpkgが実行されるべきポイントに到達しますが、実際には何もインストールされていません。 また私の努力を失望させるのは、私がこれをデバッグできるように、dpkgとスクリプト自体の両方の出力を一時ファイルにリダイレクトするように設定していることです。しかし、どちらも手動で実行すると完全に出力が表示されますが、udevによって起動されると完全に空のファイルが生成されるため、dpkgがエラーを生成している場合でも、エラーが発生します。 udevは端末では動作しないと聞いたことがありますが、それが当てはまるのか、それともこれが起こるのかはわかりません。 udevの規則: SUBSYSTEMS=="usb", KERNEL=="sd?1", RUN+="/usr/local/sbin/updater-runner.sh %" udevによって直接実行されているスクリプト: #!/bin/sh /usr/local/sbin/updater.sh ${1} & > /tmp/updater.out` メインスクリプト #!/bin/sh DEVICE=$1 echo "Running..." echo $DEVICE # check input if [ -z "$DEVICE" ]; then exit 1 fi # test that the device isn't already mounted device_is_mounted=`grep ${DEVICE} /etc/mtab` if [ -n "$device_is_mounted" …