diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-08-13 00:45:36 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-08-13 00:49:25 +0200 |
commit | 330fadb7060074bd5c38e5dcefc394abaf8d6a09 (patch) | |
tree | a6e18d6b741f38a5103586a71d20911ccc16a5ca /nixos/modules/virtualisation/containers.nix | |
parent | ab402dc1a49579785c690238ed4fce72dd707b30 (diff) | |
download | nixpkgs-330fadb7060074bd5c38e5dcefc394abaf8d6a09.tar nixpkgs-330fadb7060074bd5c38e5dcefc394abaf8d6a09.tar.gz nixpkgs-330fadb7060074bd5c38e5dcefc394abaf8d6a09.tar.bz2 nixpkgs-330fadb7060074bd5c38e5dcefc394abaf8d6a09.tar.lz nixpkgs-330fadb7060074bd5c38e5dcefc394abaf8d6a09.tar.xz nixpkgs-330fadb7060074bd5c38e5dcefc394abaf8d6a09.tar.zst nixpkgs-330fadb7060074bd5c38e5dcefc394abaf8d6a09.zip |
Containers: Use systemd-nspawn startup notification
This prevents the container unit startup from hanging until timeout if systemd-nspawn fails.
Diffstat (limited to 'nixos/modules/virtualisation/containers.nix')
-rw-r--r-- | nixos/modules/virtualisation/containers.nix | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index a7256148f08..6933fbaa9ee 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -228,12 +228,6 @@ in postStart = '' - # This blocks until the container-startup-done service - # writes something to this pipe. FIXME: it also hangs - # until the start timeout expires if systemd-nspawn exits. - read x < $root/var/lib/startup-done - rm -f $root/var/lib/startup-done - if [ "$PRIVATE_NETWORK" = 1 ]; then ifaceHost=ve-$INSTANCE ip link set dev $ifaceHost up @@ -244,6 +238,12 @@ in ip route add $LOCAL_ADDRESS dev $ifaceHost fi fi + + # This blocks until the container-startup-done service + # writes something to this pipe. FIXME: it also hangs + # until the start timeout expires if systemd-nspawn exits. + read x < $root/var/lib/startup-done + rm -f $root/var/lib/startup-done ''; preStop = @@ -267,6 +267,8 @@ in EnvironmentFile = "-/etc/containers/%i.conf"; + Type = "notify"; + # Note that on reboot, systemd-nspawn returns 10, so this # unit will be restarted. On poweroff, it returns 0, so the # unit won't be restarted. |