인터페이스가 나타날 때 실행할 스크립트(표시되지 않을 수도 있음)

인터페이스가 나타날 때 실행할 스크립트(표시되지 않을 수도 있음)

USB 키를 연결할 때 나타나는 USB 네트워크 인터페이스가 있거나 때로는 Raspberry Pi를 부팅할 때 USB 키가 이미 연결되어 있는 경우도 있습니다. 이 문제에 대한 일반적인 해결책은 다음과 같이 udev 스크립트를 추가하는 것입니다.

/udev/rules.d/50-stick.rules

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1405", RUN+="/usr/bin/netctl restart usb0"

그러나 이것은 부팅할 때나 스틱을 (다시) 삽입할 때 작동하지 않습니다. 다른 방법이 있나요? udev 메소드를 우회하고 인터페이스(예: usb0)가 나타날 때 스크립트를 시작하고 싶습니다.

편집: 이것이 작동하지 않는 이유:

ACTION=="add", SUBSYSTEM=="net", ENV{INTERFACE}=="usb0", RUN+="/usr/bin/netctl restart usb0"

몇가지 정보:

udevadm info /sys/class/net/usb0
P: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/net/usb0
L: 0
E: DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/net/usb0
E: INTERFACE=usb0
E: IFINDEX=5
E: SUBSYSTEM=net
E: USEC_INITIALIZED=508278395
E: ID_NET_NAMING_SCHEME=v240
E: ID_VENDOR=ZTE_Incorporated
E: ID_VENDOR_ENC=ZTE\x2cIncorporated
E: ID_VENDOR_ID=19d2
E: ID_MODEL=ZTE_Mobile_Broadband
E: ID_MODEL_ENC=ZTE\x20Mobile\x20Broadband
E: ID_MODEL_ID=1405
E: ID_REVISION=5486
E: ID_SERIAL=ZTE_Incorporated_ZTE_Mobile_Broadband_1234567890ABCDEF
E: ID_SERIAL_SHORT=1234567890ABCDEF
E: ID_TYPE=generic
E: ID_BUS=usb
E: ID_USB_INTERFACES=:020600:0a0000:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=cdc_ether
E: ID_USB_CLASS_FROM_DATABASE=Communications
E: ID_VENDOR_FROM_DATABASE=ZTE WCDMA Technologies MSM
E: ID_PATH=platform-3f980000.usb-usb-0:1.3:1.0
E: ID_PATH_TAG=platform-3f980000_usb-usb-0_1_3_1_0
E: ID_NET_DRIVER=cdc_ether
E: ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/usb0
E: TAGS=:systemd:

답변1

마지막으로 저는 다음 솔루션( /etc/udev/rules.d/99-stick.rules)을 채택했습니다.

ACTION=="add", SUBSYSTEM=="net", ENV{INTERFACE}=="usb0", RUN+="/usr/bin/netctl restart usb0", RUN+="/usr/bin/systemctl restart ntpdate"

관련 정보