나는 이것을 시도했습니다 :USB 장치가 연결되어 있을 때 쉘스크립트를 실행하는 방법"lsusb"에 대해 다음 출력을 제공합니다.
Bus 002 Device 007: ID 046d:0825 Logitech, Inc. Webcam C270
그리고 /etc/udev/rules.d/camset.rules에 있습니다.
ATTRS{idvendor}=="046d", ATTRS{idproduct}=="0825", RUN+="camset.sh"
camset.sh는 루트 디렉터리에 있습니다. "sh camset.sh"를 실행하면 정상적으로 실행되므로 문제가 없다고 생각합니다. 당신의 도움에 감사드립니다
답변1
~에서udev 문서:
RUN
(…) 절대 경로가 지정되지 않은 경우 프로그램은 RUN (…) 에 위치해야 하며/usr/lib/udev
, 그렇지 않으면 절대 경로를 지정해야 합니다.
PATH
Udev는 환경 변수를 사용하지 않습니다 . 전체 경로를 지정해야 합니다. 일반적인 디렉터리 구조 규칙에 따르면 이는 로컬로 작성된 파일의 경우, 루트에만 의미가 있는 실행 파일이 포함된 디렉터리의 경우 /usr/local/sbin/camset.sh
입니다 . 루트 디렉터리에 파일을 넣지 마세요./usr/local
sbin