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
데몬을 다시 로드한 후 서비스가 여러 번 실행되지 않는 이유는 무엇입니까 ?