2024-05-12

NetworkManager-wait-online.service を止めてみた

LMDE をサスペンドから復帰させた時にブラウザーがすぐに使えないのをなんとかしたいとずっと思っていたのです。

これまでも

サスペンドから復帰後、体感的には 20 〜 30 秒くらい待つとネットワークが復活する感じです。復活するまでの間は DNS の問い合わせに失敗しているような見え方です。

過去にも何度か解消に向けてトライしたことがあったような気がするのですが、有効だが見つからずにあきらめていた感じです。

今回もサスペンドから復帰させた辺りのシステムログを journalctl  コマンドで確認するところから始めました。

systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully.

このメッセージが直前のメッセージから 10 秒ほど経過してから出力されています。NetworkManager が何か邪魔をしているのかしら?

systemd-resolved[790]: Using degraded feature set UDP instead of UDP+EDNS0 for DNS server

こんなメッセージも登場してきます。これは黄色の警告メッセージです。もしやこれのせいで DNS 問い合わせがしばらくの間、失敗しているのかしら?


そして解決策

NetworkManager-wait-online.service を止めてしまう、という情報を見つけました。

「う〜ん、これも前に試した気もするけどなぁ」と半信半疑の状態です。情報元の人は OS の起動時間の短縮のために止めているということでしたが、サスペンドからの復帰も同じなのではないかと思い、試してみることにしました。

まずは効果があることを確認するためにサービスの無効化ではなく、サービスの停止で様子を見てみます。

$ systemctl status NetworkManager-wait-online.service 
● NetworkManager-wait-online.service - Network Manager Wait Online
     Loaded: loaded (/lib/systemd/system/NetworkManager-wait-online.service; enabled; preset: enabled)
     Active: active (exited) since Thu 2024-05-09 19:34:46 JST; 2 days ago
       Docs: man:nm-online(1)
    Process: 933 ExecStart=/usr/bin/nm-online -s -q (code=exited, status=0/SUCCESS)
   Main PID: 933 (code=exited, status=0/SUCCESS)
        CPU: 17ms

 5月 09 19:34:39 xxxxx systemd[1]: Starting NetworkManager-wait-online.service - Network Manager Wait Online...
 5月 09 19:34:46 xxxxx systemd[1]: Finished NetworkManager-wait-online.service - Network Manager Wait Online.

対応前なので active (exited) というステータスです。

$ systemctl stop NetworkManager-wait-online.service 

サービスの停止コマンドを投入しました。

$ systemctl status NetworkManager-wait-online.service 
○ NetworkManager-wait-online.service - Network Manager Wait Online
     Loaded: loaded (/lib/systemd/system/NetworkManager-wait-online.service; enabled; preset: enabled)
     Active: inactive (dead) since Sat 2024-05-11 20:16:06 JST; 2s ago
   Duration: 2d 41min 19.789s
       Docs: man:nm-online(1)
    Process: 933 ExecStart=/usr/bin/nm-online -s -q (code=exited, status=0/SUCCESS)
   Main PID: 933 (code=exited, status=0/SUCCESS)
        CPU: 17ms

 5月 09 19:34:39 xxxxx systemd[1]: Starting NetworkManager-wait-online.service - Network Manager Wait Online...
 5月 09 19:34:46 xxxxx systemd[1]: Finished NetworkManager-wait-online.service - Network Manager Wait Online.
 5月 11 20:16:06 xxxxx systemd[1]: NetworkManager-wait-online.service: Deactivated successfully.
 5月 11 20:16:06 xxxxx systemd[1]: Stopped NetworkManager-wait-online.service - Network Manager Wait Online.

inactive (dead) なので、サービスが停止状態となりました。


この状態でサスペンドから復帰させ、すぐさま Firefox で何かしらのサイトにアクセスしてみたところ、待ち時間はゼロにはならなかったのですが以前よりはだいぶ短い時間で済むようになりました。

この LMDE マシンは IPv4 側は固定 IP アドレスの割り当てで、IPv6 側は DHCP による IP アドレスの割り当てなので、なんとなくこの IPv6 の DHCP 待ちなのではないかと思っています。ワタシのインターネット回線は IPoE なので、IPv6 の準備ができないとダメなのかな?と。

NetworkManager のログも先に IPv4 の処理をしてから IPv6 の処理をしているようなので、先に IPv6 の処理をしてくれると違ってくるのかもしれません。

ん?もしかして、DNS サーバーの IP アドレスを IPv6 で指定しているところを IPv4 に変えると早めに使えるようになる?いやいや、IPoE だからやはり IPv6 の通信経路が準備できていないとダメなのかな?

 

とりあえず、NetworkManager-wait-online.service を停止することでサスペンドからの復帰時にインターネットが使えるようになるまでの待ち時間を短くできることがわかったので、恒久反映してみます。

$ systemctl disable NetworkManager-wait-online.service 
Removed "/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service".

次回の PC 再起動に備えて disable で無効化しておきます。

$ systemctl status NetworkManager-wait-online.service 
○ NetworkManager-wait-online.service - Network Manager Wait Online
     Loaded: loaded (/lib/systemd/system/NetworkManager-wait-online.service; disabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:nm-online(1)

 5月 09 19:34:39 xxxxx systemd[1]: Starting NetworkManager-wait-online.service - Network Manager Wait Online...
 5月 09 19:34:46 xxxxx systemd[1]: Finished NetworkManager-wait-online.service - Network Manager Wait Online.
 5月 11 20:16:06 xxxxx systemd[1]: NetworkManager-wait-online.service: Deactivated successfully.
 5月 11 20:16:06 xxxxx systemd[1]: Stopped NetworkManager-wait-online.service - Network Manager Wait Online.

はい、ちゃんと無効化されていますね。


もう一息だなぁ。