実際、私はこの質問に答えて以下を投稿したいと思いました。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