From 90a3908ec333a47232b520d8f5c7f2680f348fea Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Mon, 30 Dec 2019 22:24:37 +0100 Subject: nixos/containers: use machinectl poweroff Previously, we were storing the leader pid in a runtime file and signalled SIGRTMIN+4 manually. In systemd 219, the `machinectl poweroff` command was introduced, which does that for us. --- nixos/modules/virtualisation/containers.nix | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) (limited to 'nixos') diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index 09678ce9ea716..02de5801da253 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -225,12 +225,6 @@ let fi ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)} fi - - # Get the leader PID so that we can signal it in - # preStop. We can't use machinectl there because D-Bus - # might be shutting down. FIXME: in systemd 219 we can - # just signal systemd-nspawn to do a clean shutdown. - machinectl show "$INSTANCE" | sed 's/Leader=\(.*\)/\1/;t;d' > "/run/containers/$INSTANCE.pid" '' ); @@ -715,14 +709,7 @@ in postStart = postStartScript dummyConfig; - preStop = - '' - pid="$(cat /run/containers/$INSTANCE.pid)" - if [ -n "$pid" ]; then - kill -RTMIN+4 "$pid" - fi - rm -f "/run/containers/$INSTANCE.pid" - ''; + preStop = "machinectl poweroff $INSTANCE"; restartIfChanged = false; -- cgit 1.4.1