udev
특정 장치뿐만 아니라 연결된 모든 USB 대용량 저장 장치에 규칙을 적용하려면 어떻게 해야 합니까 ? idVendor
그리고 무엇을 바꿔야합니까 idProduct
?
ACTION=="add", SUBSYSTEM=="usb", SYSFS{idVendor}=="0204", SYSFS{idProduct}=="6025",
RUN+="/home/workspace/bash_script.sh"
답변1
저장 장치는 하위 시스템에 있으므로 규칙에 다음과 같은 항목을 추가 block
해야 합니다 .SUBSYSTEM=="block"
ACTION=="add", KERNEL=="sd?", SUBSYSTEM=="block", ENV{ID_BUS}=="usb", \
RUN+="/path/to/script"
사용하시면 USB 저장장치를 추가하실 때마다 systemd
유닛을 실행할 수 있습니다 . systemd
예를 들어 다음과 같은 단위 파일을 만듭니다 /etc/systemd/system/my-usb-rule.service
.
[Service]
Type=oneshot
ExecStart=/path/to/script
그리고 다음과 같은 규칙 /etc/udev/rules.d/85-my-usb-rule.rules
:
ACTION=="add", KERNEL=="sd?", SUBSYSTEM=="block", ENV{ID_BUS}=="usb", \
ENV{SYSTEMD_WANTS}="my-usb-rule.service"
이제 udev
모든 USB 저장 장치에서 트리거 됩니다 my-usb-rule.service
(따라서 스크립트 실행).다음에 추가이벤트.
규칙/단위를 편집한 후 구성을 다시 로드하는 것을 잊지 마세요.
udevadm control --reload
systemctl daemon-reload