USB 허브에서 장치를 제거하면 허브의 udev 이벤트가 트리거됩니다.

USB 허브에서 장치를 제거하면 허브의 udev 이벤트가 트리거됩니다.

USB 허브가 제거되면 시스템을 중지하는 udev 규칙이 있습니다.

SUBSYSTEM=="usb", ACTION=="remove", ENV{ID_VENDOR_ID}="050d", ENV{ID_MODEL_ID}="0237", RUN+="/sbin/halt"

안타깝게도 이는 허브에 연결된 장치가 제거될 때도 발생합니다. 장치를 연결하고 뺄 때의 출력을 살펴본 결과 udevadm monitor --udev --property, 제거된 허브에 고유하고 격리할 수 있는 필드 집합이 없습니다.

연결된 장치가 아닌 허브에 대해서만 삭제 이벤트를 얻을 수 있는 방법을 아는 사람이 있습니까?

답변1

누가 "==" 대신 "="를 사용했는지 추측해 보세요. 이는 규칙이 모든 삭제 이벤트와 일치한다는 의미입니까? 이런...

두 이벤트 세트 사이에는 겹치는 부분이 많지만 이 센터의 라인은 다음과 같습니다.

ACTION=="remove", ENV{PRODUCT}=="50d/237/100", RUN+="/sbin/shutdown -h now"

관련 정보