Debian 12

Fixing Long Boot Delays Caused by systemd-networkd-wait-online.service on Debian 12

November 03, 2025 8 months ago

Many Debian 12 systems experience a ~2-3 minute stall during boot, usually with messages such as:

A start job is running for Wait for Network to be Configured...

or

systemd-networkd-wait-online.service: Timeout occurred while waiting for network connectivity.

If this looks familiar, the delay is caused by the system waiting for the network to reach an “online” state — and failing only after the default timeout expires.

This article explains why this happens on Debian 12 and how to fix or disable the delay.

What is systemd-networkd-wait-online.service?

systemd-networkd-wait-online.service is part of systemd-networkd, the lightweight network configuration system built into systemd.
It is responsible for:

  • Waiting for network interfaces to be configured
  • Reporting the network as “online” to services that depend on network-online.target

By default, the service will wait up to 120 seconds for all interfaces managed by systemd-networkd to become “online”.

This timeout is the reason for the noticeable boot stall.

Why does Debian 12 often stall for 2–3 minutes?

1. Unused or unplugged network interfaces

If a system has multiple NICs (common on desktops, servers, VMs), systemd-networkd may wait for all of them, even if some are:

  • unplugged
  • unconfigured
  • virtual and never intended to come up

One non-functional interface → 2-minute delay.

2. Interfaces not actually managed by systemd-networkd

Debian 12 does not use systemd-networkd by default. It uses:

  • ifupdown on servers
  • NetworkManager on desktops

But in many cases, the systemd-networkd-wait-online.service still gets enabled (e.g., by installing certain packages).
 Then systemd-networkd waits even though it’s not controlling any interface — causing a full timeout.

3. Misconfigured .network files

If systemd-networkd is in use, an interface may remain stuck in:

  • configuring (no carrier)
  • configuring (dhcp)

This again produces a timeout.

4. Buggy behavior with multiple interfaces

Some systemd versions used in Debian 12 fail the online-check correctly when one interface is considered “down”, even if another is working.
 This issue is known upstream and still shows up in Debian 12 deployments.

How to Fix or Reduce the Boot Delay

Option 1 — Disable the service entirely (safest for most Debian 12 systems)

If you are not using systemd-networkd (most users are not), disable the service:

sudo systemctl disable systemd-networkd-wait-online.service
sudo systemctl mask systemd-networkd-wait-online.service

On typical Debian 12 desktops or servers (using ifupdown or NetworkManager), this is the recommended fix and causes no functional downside.

Option 2 — Reduce the timeout

Create an override:

sudo systemctl edit systemd-networkd-wait-online.service

Insert:

[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --timeout=20

Save & reload:

sudo systemctl daemon-reload

This changes the wait time from 120 → 20 seconds.

Option 3 — Wait only for a specific interface

If you only care about eth0, create an override:

sudo mkdir -p /etc/systemd/system/systemd-networkd-wait-online.service.d
sudo nano /etc/systemd/system/systemd-networkd-wait-online.service.d/override.conf

Add:

[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --interface=eth0 --any

Then reload:

sudo systemctl daemon-reload

This prevents it from waiting on unused NICs.

Option 4 — Fix .network configuration (for actual systemd-networkd users)

Check the status:

networkctl

Ensure unused interfaces have:

RequiredForOnline=no

in their corresponding .network files.

Verifying the Fix

After applying changes, run:

systemctl status systemd-networkd-wait-online.service

and reboot:

sudo reboot

Boot should now proceed without a long wait.

Summary

On Debian 12, the 2–3 minute boot delay is almost always caused by systemd-networkd-wait-online.service waiting for interfaces that never come online.

Most systems do not use systemd-networkd → so it is safe to disable the service.

You can:

  • Disable the service (recommended for most)
  • Shorten the timeout
  • Limit which interfaces the service waits for
  • Fix network settings if you use systemd-networkd
↑↓ navigate select
⌘K to toggle