Linux에서 이더넷 케이블 연결/분리 이벤트를 기다리고 계십니까?

Linux에서 이더넷 케이블 연결/분리 이벤트를 기다리고 계십니까?

SIOCETHTOOL/ETHTOOL_GLINK ioctl을 통해 링크 상태를 폴링할 수 있다는 것을 알고 있지만 이를 위해서는 상태에 대한 끝없는 요청이 필요합니다. /var/log/messages를 구문 분석하는 경우에도 마찬가지입니다. 그래서 내 질문은 Linux에서 사용자 공간의 이더넷 케이블에 대한 상태 변경을 기다리는 방법이 있습니까?

답변1

어때요?ifplugd?

ifplugd이더넷 장치를 자동으로 구성하는 Linux 데몬입니다.케이블을 연결하면 자동으로 구성이 해제됩니다(케이블을 뽑은 경우).. 이는 케이블이 실제로 연결될 때만 인터페이스를 구성하므로 온보드 네트워크 어댑터가 있는 노트북에 유용합니다.

(또한 있지만 netplugd,단종.)

답변2

sr_의 솔루션은 내 것보다 낫지만 이러한 ioctl을 사용하면 sleep리소스에 대한 끝없는 압박을 피할 수 있습니다. 문제가 있는 링크 업/다운이 있는지 조사하는 루프를 작성하고 sleep두 경우 모두 몇 초 동안 아무 작업도 수행하지 않습니다. 시스템에 약간의 부하만 가할 뿐입니다.

관련 정보