web-dev-qa-db-ja.com

Devuan ...起動時にインターネットインターフェイスが構成されている間待機する時間を短縮します

私はdebianに比べて最初の方が優れたセキュリティとその単純さのために、debianを残した後、ラップトップに devuan linux を使用しています。

私はそれに本当に満足していますが、次の問題があります:

OSの起動時に、イーサネットケーブルが差し込まれていない場合、または接続に問題がある場合でも、次の場合は約20秒間待機します。

インターネットインターフェイスの構成

...そしてその後それは言う:

ifupはすでに構成されています。完了

または同様の何か、実際にインターフェイスを構成した場合でも(ケーブルが最初から実際に接続されていない場合は、接続されているはずです-ケーブルが長すぎるか、原因である可能性があるため、ケーブルに問題がある可能性がありますポートに問題があります-)インターフェイスが実際に構成されていなくても、インターネットにアクセスできません。

私が欲しいのは:1)設定を保存する方法で、起動のたびにifupが再設定されるまで、この20秒間待つ必要はありませんが、

service networking restart

起動中にインターネットが実際に構成されていない場合。

PS:起動するたびに20秒待つのは本当に長いので、ケーブルを差し込まずにオフラインで作業したいことがよくあります。

/etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto
4
koleygr

たぶん、udev相当( eudev または mdevDevuan )は 'ではありませんホットプラグイベントに関しては100%同じように動作します。また、スイッチを使用している場合、実際にトラフィックを双方向に機能させる前に、スイッチの転送遅延が非常に長い可能性があります(この場合、以下の2番目のソリューションは機能しません)。

とにかく、インターフェースを未構成にしたいだけなら、これはかなり簡単なはずです。最も簡単なものからより複雑なものまで、2つまたは3つの提案があります。

  1. インターフェイスを構成から除外します

    1.1。 /etc/default/networkingのデフォルトネットワーク設定を変更するだけです。

    どちらか

    CONFIGURE_INTERFACES=no
    

    loでさえ起動されないため、これは少し極端であり、ネットワークに接続されていないアプリケーションでも正しく動作しない可能性があります(gdm ...)。

    1.2。または

    EXCLUDE_INTERFACES=eth0
    

    問題のあるインターフェイスだけを除外します。

    その後、ifup eth0を使用して起動できます。

  2. または、代わりに、構成に条件を追加してリンクが使用可能かどうかを確認し、使用できない場合はインターフェイスを「失敗」させることができます。ユーザーが指定したdhcpコマンドの前または後にupフックが実行されるかどうかわからないため、不正行為を行ってpre-upに配置します。これには、最初に手動でインターフェイスを起動する必要があります。 。 upコマンドを使用しても、最初に起動しなくても十分かどうかを確認できます。

    関連する/etc/network/interfacesパーツを次のように編集します。

    allow-hotplug eth0
    iface eth0 inet dhcp
        pre-up ip link set eth0 up && sleep 1
        pre-up [ $(cat /sys/class/net/eth0/carrier) -eq 1 ]
    iface eth0 inet6 auto
        pre-up ip link set eth0 up && sleep 1
        pre-up [ $(cat /sys/class/net/eth0/carrier) -eq 1 ]
    

    (おそらくipv6設定には必要ありません。これにより、おそらく1秒節約できます。興味がなければinet6セクション全体を削除することもできます)

    テストの結果が返されると、ifupは構成が失敗したと見なし、カードの論理(ifupdownの観点)状態をそのままにします。

ケーブルを差し込んだ後、後でifup eth0またはservice networking restartを発行できます。

4
A.B