USBストレージデバイスがマウントされるたびにスクリプトが実行されるようにシステムを設定しようとしています(この場合はsystemdによって自動的にマウントされます)。いくつかの参考資料に基づいてここ、ここそしてここ、systemdを使用すると、特定のデバイスがインストールされた後にカスタムスクリプトを実行できますが、これらのスクリプトは次のようになります。
- 特定の機器または取り付けポイントが必要です。
- udevを使用すると、早期にトリガーされ、インストールプロセスが保存されます。
- 監査やロギングを使用すると、それほど満足のいくものではありません。
とにかくありますか?少ないExecStart
特に、成功した(自動)インストール後にシステムデバイスで許可されますか?
答え1
私は方向だけを知らせることができる。
cat /etc/udev/rules.d/bb-clam.rules
KERNEL=="sd[b-z]*", SUBSYSTEMS=="usb", TAG+="systemd", ENV{SYSTEMD_WANTS}="clamtk.service"
その後、私のデバイスのclamtk.serviceが実行されます。cat /etc/systemd/system/clamtk.service
[Unit]
Description=clamtk
Requires=dev-media0.device
[Service]
Type=simple
User=alex
ExecStart=/bin/bash -c "/usr/local/bin/clam"
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=15s
[Install]
WantedBy=multiuser.target
ただし、これはデバイスがユーザーとして起動し、デバイスがUSBハードドライブに対してもトリガーされる場合にのみ機能します。