사실 저는 이 질문에 대한 답변으로 다음을 게시하고 싶었습니다.ifup eth0이 시작 중에 시간 초과됨. 그러나 이것이 올바른 접근 방식인지, 아니면 일을 망치는 방법인지는 확실하지 않습니다.
실제로 다음 명령을 실행하여 네트워크 케이블이 머신에 연결되어 있는지 확인할 수 있습니다.
grep "" /sys/class/net/eth0/carrier
네트워크 케이블을 연결하면 출력이1위 명령의 경우 삽입되지 않으면 출력은 다음과 같습니다.0위의 명령에 대해. 내 시스템에서 위 부분을 테스트했는데 예상대로 잘 작동합니다.
이제 문제는 이 조건을 어떻게 포함시킬 것인가이다.시작하다. 우리는 그것을 네트워크에 포함시킬 수 있습니다시작하다인터페이스를 시작하기 전에 이 조건을 확인하는 파일입니다. RHEL 상자에서 이 파일은 /etc/sysconfig/network-scripts/ifcfg-eth0
네트워크 인터페이스를 시작하는 데 사용됩니다.
그래서 파일을 다음과 같이 변경하면,
cable=$(grep "" /sys/class/net/eth0/carrier)
if $cable -eq 1 then
#rest of the /etc/sysconfig/network-scripts/ifcfg-eth0 as it is.
else
break
그러나 이 접근 방식을 생각해 내거나 내 컴퓨터에서 시도하기 전에 내 질문은 다음과 같습니다. 서비스가 시작되면 서비스가 /sys/class/net/eth0/carrier
준비되어 사용할 수 있습니까? 이 방법이 효과가 있다고 가정할 때 무선을 사용하기로 결정하면 문제가 발생합니까?
답변1
불행하게도 위에서 제안한 방법이 작동하려면 인터페이스가 작동되어야 합니다. 질문에 제안된 대로 파일을 변경했는데 결국 오류가 발생했습니다.잘못된 인수". 따라서 인터페이스는 유선 연결이 가능한지 쿼리할 수 있어야 한다고 생각합니다. 또한 이 답변에서 더 유용한 정보를 찾았습니다.네트워크 케이블/커넥터의 물리적 연결 상태를 어떻게 감지합니까?.
cat /sys/class/net/ethX
가장 쉬운 방법입니다.하지만 인터페이스가 작동 중이어야 합니다. 그렇지 않으면 잘못된 매개변수 오류가 발생합니다.
첫 번째:
ifconfig ethX up
그 다음에:
cat /sys/class/net/ethX