How to Completely Disable the ‘systemd-time-wait-sync’ Service in Ubuntu Server

In Ubuntu Server, systemd-time-wait-sync.service is an initialization daemon that explicitly delays the system boot process until the server’s local clock has been synchronized with a reliable external time source (typically via systemd-timesyncd or NTP). This is crucial for servers that lack a hardware Real-Time Clock (RTC)—such as certain ARM boards like the Raspberry Pi—or for cryptographic services that absolutely require accurate timestamps before generating certificates. However, for standard virtual machines, heavily isolated air-gapped systems without NTP access, or environments where rapid boot times are prioritized over initial clock accuracy, this service simply acts as an unnecessary roadblock, hanging the boot sequence while it desperately searches for a time server.

This guide explains how to completely disable the systemd-time-wait-sync service in Ubuntu Server, preventing it from blocking the multi-user boot target.

Stop and Mask the Systemd-Time-Wait-Sync Service

Because this service is deeply integrated into the time-sync.target, simply disabling it might not prevent it from being invoked by other dependent services during early boot. We must explicitly mask it.

  1. Log into your Ubuntu Server via SSH using an account with sudo privileges.
  2. First, stop the service if it is currently attempting to hold the boot process (unlikely if you are already logged in via SSH, but best practice):
    sudo systemctl stop systemd-time-wait-sync.service
  3. Next, disable the service to remove its symlinks from the system targets:
    sudo systemctl disable systemd-time-wait-sync.service
  4. Finally, explicitly mask the service. This symlinks the unit file to /dev/null, creating an absolute block against it starting under any circumstances:
    sudo systemctl mask systemd-time-wait-sync.service

Verify the Service Lockdown

By masking systemd-time-wait-sync.service, you instruct the init system to proceed immediately through the boot sequence, completely ignoring whether the local clock is in sync with external NTP servers.

To verify the lockdown is successful, run the following command to check the status of the service:

systemctl status systemd-time-wait-sync.service

The output will clearly state that the service is masked. The server will now boot as fast as its hardware allows, though administrators must ensure that subsequent cron jobs or cryptographic tasks can tolerate potential initial clock skew.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.