udev가 RUN에서 테스트 스크립트를 실행하지 않습니다.

udev가 RUN에서 테스트 스크립트를 실행하지 않습니다.

USB에 DSLR 카메라용 비디오 장치를 만들려고 합니다. /dev/상자 밖으로는 아무것도 나타나지 않습니다.

속도

$ lsusb
...
Bus 001 Device 010: ID 04a9:3270 Canon, Inc. 
...

다음 버스 및 장치 번호를 사용하여 속성을 가져옵니다 udevadm.

$ sudo udevadm info --attribute-walk /dev/bus/usb/001/010

  looking at device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.5':
    KERNEL=="1-1.5"
    SUBSYSTEM=="usb"
    DRIVER=="usb"
    ...
    ATTR{ltm_capable}=="no"
    ATTR{manufacturer}=="Canon Inc."
    ATTR{maxchild}=="0"
    ATTR{product}=="Canon Digital Camera"
    ATTR{quirks}=="0x0"
    ...

  looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1':
    KERNELS=="1-1"
    ...

거기에서 (우선) 메시지를 파일로 인쇄하는 udev 규칙을 생성할 수 있을 것으로 기대합니다.

$ cat /tmp/test.sh
#!/usr/bin/env bash
echo "asdf" >> /tmp/dslr-udev-test.txt

실행 권한:

$ ls -l /tmp/test.sh
-rwxrwxr-x 1 gauthier gauthier 59 Jun 23 22:54 /tmp/test.sh

그런 다음 udev 규칙 자체가 있습니다.

$ cat /etc/udev/rules.d/90-canon-dslr.rules 
SUBSYSTEM=="usb", ACTION=="add", ATTR{product}=="Canon Digital Camera", RUN+="/tmp/test.sh"

출력 파일에 출력이 없으므로 tail -f.

답변1

#!/usr/bin/env bash물론 이 경우에는 사용할 수 없습니다 .

그것을 작업으로 바꾸십시오 #!/bin/sh.

관련 정보