재부팅하지 않고 udev 규칙을 다시 로드하는 방법은 무엇입니까?

재부팅하지 않고 udev 규칙을 다시 로드하는 방법은 무엇입니까?

새로 생성된 규칙이 실행될 수 있도록 udev 규칙을 어떻게 다시 로드해야 합니까?

저는 Arch Linux를 실행하고 있는데 여기에는 명령이 없습니다 udevstart.

또한 확인하면 /etc/rc.dudev 서비스가 없습니다.

답변1

# udevadm control --reload-rules && udevadm trigger

답변2

Udev는 다음을 사용합니다.inotify규칙 디렉터리, 라이브러리 및 로컬 구성 트리(일반적으로 /lib/udev/rules.d및 에 있음) /etc/udev/rules.d의 변경 사항을 모니터링하는 메커니즘입니다 . 따라서 대부분의 경우 규칙 파일을 변경할 때 조치가 필요하지 않습니다.

비정상적인 작업을 수행하는 경우(예: 규칙에 다른 디렉터리의 파일이 포함된 경우)에만 udev 데몬에 명시적으로 알리면 됩니다. 그런 다음 데몬에게 일반적인 규칙을 사용하여 구성을 다시 로드하도록 요청할 수 있습니다.한숨을 쉬다( pkill -HUP udevd). 아니면 당신은 사용할 수 있습니다udevadm주문하다: udevadm control --reload-rules.

그러나 udev의 다양한 버전에는 역사적으로 자동 재로드 규칙에 대한 다른 트리거가 있다는 점에 유의하십시오. 따라서 의심스러우면 전화하세요 udevadm control --reload-rules. 무슨 일이 있어도 해를 끼칠 수는 없습니다.

udev 규칙은 장치를 추가할 때만 적용됩니다. 연결된 장치에 규칙을 다시 적용하려면 udevadm trigger구성이 변경된 장치와 일치하는 올바른 옵션을 호출하여 이를 명시적으로 수행해야 합니다 udevadm trigger --attr-match=vendor='Yoyodyne' --attr-match=model='Frobnicator 300'.

답변3

언젠가 다시 필요할 것 같아서 추가합니다.

때로는 이더넷 장치 번호와 MAC 주소가 올바르게 일치하지 않는 경우가 있습니다. 가상 머신에서 실행되고 각 장치가 다른 VLAN에 할당되는 경우와 같이 이는 때때로 중요합니다.

  1. 네트워크 인터페이스를 닫은 다음
  2. 수정 /etc/udev/rules.d/70-persistent-net.rules(또는 이와 동등)
  3. 새로고침udevadm control --reload-rules
  4. 재트리거udevadm trigger --attr-match=subsystem=net
  5. 네트워크 인터페이스를 시작합니다.

나는 이것이 얼마나 잘 작동하는지 놀랐습니다.

답변4

나에게는 다음 명령 순서가 예상대로 작동했습니다.

재부팅하지 않고 숫자를 /etc/udev/rules.d/70-persistent-net.rules변경 하고 다시 로드할 수 있도록 수정했습니다 .eth

/etc/init.d/networking stop
/etc/init.d/udev stop
udevadm control --reload-rules
/etc/init.d/udev start
/etc/init.d/networking start

그 후 컴퓨터를 다시 시작하지 않고도 런타임에 성공적으로 로드되었습니다.

이에 대한 어떤 제안이나 제안도 환영합니다. 맨 페이지를 읽으면서 직접 발견한 것이기 때문입니다.

관련 정보