udevルールから開始されたシステムサービスがあります。
[Unit]
Description=Open DSLR camera device
[Service]
ExecStart=/bin/sh -c "/tmp/test.sh"
/tmp/test.sh
まだ多くのことが行われていません:
#!/bin/sh
echo "qwer" >> /tmp/dslr-udev-test.txt
udevルールは関係がないと思います(私のDSLRカメラがUSBに接続されたときにトリガされます)。とにかく、ここにあります:
SUBSYSTEM=="usb", ACTION=="add", ATTR{product}=="Canon Digital Camera", TAG+="systemd", ENV{SYSTEMD_WANTS}="dslr-device.service"
カメラを起動してsudo systemctl daemon-reload
開くと、ファイルに/tmp/dslr-udev-test.txt
新しいコンテンツが表示されます。でもちょうど一度だけ!カメラの電源を切ってから再度オンにすると、新しいコンテンツは表示されません。
再起動後にsudo systemctl daemon-reload
カメラを開くとファイルに新しいコンテンツが表示され、カメラを再起動するとコンテンツは表示されなくなります。
ExecStart
デーモンをリロードした後にサービスが何度も実行されないのはなぜですか?