要件
- USBメモリを挿抜したタイミングでスクリプトを動かしたい
- USBメモリを挿抜したタイミングでサービスを動かしたい
Raspberry Pi Zero 2で試してみました。
まずは・・・
USB検出したときのルールを追加するためにファイル作成
nano /etc/udev/rules.d/10-usbdevice.rules
スクリプトを動かしたい
USBメモリを刺したら、そのデバイスをマウントして色々処理したい。
ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd*[0-9]", RUN+="/home/pi/script_on.sh $kernel"
ACTION=="remove", SUBSYSTEMS=="usb", KERNEL=="sd*[0-9]", RUN+="/home/pi/script_off.sh $kernel"
$kernelにはsda1とかsdb1がはいるので、スクリプト内でマウントなどできますね。
サービスを動かしたい
スクリプトだと59秒以上動かすと強制退場くらいますので、サービスにしたい場合は以下です。
ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd*[0-9]", ENV{SYSTEMD_WANTS}="usbdevice@$kernel\.service"
スクリプト内で$Iでsda1などが取得できます。