새로 생성된 규칙이 실행될 수 있도록 udev 규칙을 어떻게 다시 로드해야 합니까?
저는 Arch Linux를 실행하고 있는데 여기에는 명령이 없습니다 udevstart
.
또한 확인하면 /etc/rc.d
udev 서비스가 없습니다.
답변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에 할당되는 경우와 같이 이는 때때로 중요합니다.
- 네트워크 인터페이스를 닫은 다음
- 수정
/etc/udev/rules.d/70-persistent-net.rules
(또는 이와 동등) - 새로고침
udevadm control --reload-rules
- 재트리거
udevadm trigger --attr-match=subsystem=net
- 네트워크 인터페이스를 시작합니다.
나는 이것이 얼마나 잘 작동하는지 놀랐습니다.
답변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
그 후 컴퓨터를 다시 시작하지 않고도 런타임에 성공적으로 로드되었습니다.
이에 대한 어떤 제안이나 제안도 환영합니다. 맨 페이지를 읽으면서 직접 발견한 것이기 때문입니다.