Nixpkgs: NetworkManager.service not found

Created on 2 Dec 2018  ยท  6Comments  ยท  Source: NixOS/nixpkgs

Issue description

I've configured a wireguard service to wait for the network to be online with the following:

systemd.services.wireguard-wg0.after = [ "NetworkManager-wait-online.service" ];
systemd.services.wireguard-wg0.requires = [ "NetworkManager-wait-online.service" ];

This does work on startup but trying to restart the service gives an error about NetworkManager.service not being found.

sudo systemctl restart wireguard-wg0.service
Failed to start wireguard-wg0.service: Unit NetworkManager.service not found.

I tried using network-online.target and while I don't get any error, wireguard starts before the network is ready.

Steps to reproduce

Here is my related config:

networking.networkmanager.enable = true;
networking.networkmanager.packages = [ pkgs.networkmanagerapplet  ];
networking.networkmanager.dns = "none";
networking.networkmanager.unmanaged = [ "docker0" ];
networking.nameservers = [ "<IP>" ];

# Wireguard service here

systemd.services.wireguard-wg0.after = [ "NetworkManager-wait-online.service" ];
systemd.services.wireguard-wg0.requires = [ "NetworkManager-wait-online.service" ];

Technical details

 - system: `"x86_64-linux"`
 - host os: `Linux 4.14.74, NixOS, 18.09pre-git (Jellyfish)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.1.1`
 - nixpkgs: `/nix/store/mz3dkrc21b6mrrzns44xrqjycm9nyq74-18.09.tar.gz`

Additional info

I don't understand why it's works on startup. Right after a reboot:

systemctl status wireguard-wg0.service
โ— wireguard-wg0.service - WireGuard Tunnel - wg0
   Loaded: loaded (/nix/store/83mcrmx466p45aa8zmixkgakkqypjmn0-unit-wireguard-wg0.service/wireguard-wg0.service; enabled; vendor preset: enabled)
   Active: active (exited) since Sun 2018-12-02 09:39:51 CET; 16s ago
  Process: 1161 ExecStart=/nix/store/f8ibavimszr0czkf2p8qbs9pnqskzqr2-unit-script-wireguard-wg0-start (code=exited, status=0/SUCCESS)
 Main PID: 1161 (code=exited, status=0/SUCCESS)

Dec 02 09:39:51 Mimir systemd[1]: Starting WireGuard Tunnel - wg0...
Dec 02 09:39:51 Mimir systemd[1]: Started WireGuard Tunnel - wg0.

while It doesn't when trying to restart manually...

Most helpful comment

I currently prepare a patch to undo the service renaming. I don't see its value, when it breaks compatibility.

All 6 comments

Because we are renaming NetworkManager.service to network-manager.service this
breaks other units:

systemctl cat NetworkManager-wait-online.service
# /nix/store/l3kjl4rsbj184g9vj2703xp2milwh28k-network-manager-1.12.2/etc/systemd/system/NetworkManager-wait-online.service
[Unit]
Description=Network Manager Wait Online
Documentation=man:nm-online(1)
Requires=NetworkManager.service
After=NetworkManager.service
Before=network-online.target

[Service]
Type=oneshot
ExecStart=/nix/store/l3kjl4rsbj184g9vj2703xp2milwh28k-network-manager-1.12.2/bin/nm-online -s -q --timeout=30
RemainAfterExit=yes

[Install]
WantedBy=network-online.target

cc @flokli

Should we make a patch to change NetworkManager.service to network-manager.service in
https://github.com/NetworkManager/NetworkManager/blob/master/data/NetworkManager-wait-online.service.in#L4 when installing networkmanager ?

I currently prepare a patch to undo the service renaming. I don't see its value, when it breaks compatibility.

@M-Gregoire you can still prepare a patch for 18.09 though. I don't plan to backport my pull request.

@M-Gregoire this one can be closed now, right?

Oops, indeed! Thanks for pointing that out

Was this page helpful?
0 / 5 - 0 ratings

Related issues

tomberek picture tomberek  ยท  3Comments

spacekitteh picture spacekitteh  ยท  3Comments

domenkozar picture domenkozar  ยท  3Comments

ghost picture ghost  ยท  3Comments

langston-barrett picture langston-barrett  ยท  3Comments