![USB 장치를 추가할 때 udev 규칙은 스크립트를 실행할 수 없습니다.](https://linux55.com/image/56145/USB%20%EC%9E%A5%EC%B9%98%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%A0%20%EB%95%8C%20udev%20%EA%B7%9C%EC%B9%99%EC%9D%80%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
/etc/udev/rules.d/21-persistent-local.rules
다음은 가상 머신 내에서 실행되는 Debian 머신의 USB 인터페이스를 사용하여 Seagate 500GB 확장 드라이브에 대해 만든 간단한 규칙입니다 .
ACTION=="add", ENV{DEVTYPE}=="usb_device", ATTRS{ID_SERIAL_SHORT}=="NA453QQS", SUBSYSTEM=="usb", HOTPLUG == 1, \
RUN+="/usr/local/bin/run.sh"
저장 후 실행합니다 udevadm trigger
. 마지막으로 드라이브를 연결하고 실행하여 udevadm monitor --env
확장 드라이브가 올바르게 로드되었는지 확인했습니다.
add
이제 작업에 대해 실행되어야 하는 규칙을 정의했습니다 run.sh
. 두 개의 합계 외에는 run.sh
아무것도 없습니다 . 그러나 스크립트를 실행할 수 없습니다. 특히 스크립트에는 아무 것도 인쇄되지 않습니다. 커널에 로드한 모듈은 커널 종료 및 진입 시 표시되어야 하는 메시지를 인쇄합니다.sudo insmod foo.ko
sudo rmmod foo.ko
dmesg
run.sh
이 문제의 가능한 원인은 무엇입니까?
추신: 위의 규칙 파일에서 나는 이 두 가지를 모두 사용했습니다.ATTRS{...}
ID_SERIAL=Seagate_Expansion_NA453QQS ID_SERIAL_SHORT=NA453QQS