diff options
author | Michael Weiss <dev.primeos@gmail.com> | 2018-07-28 20:42:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-28 20:42:22 +0200 |
commit | 01cfa808ff3dac60cf21f0fd8f22ff52ebc33820 (patch) | |
tree | 678f160f9c70a3640c48e06fea1fcc382ff40c83 /nixos/modules/system/activation | |
parent | 0fa2cbf59f7f68a8b9213a9cf9d2cd6dd2e518cc (diff) | |
parent | 7098b0fcdfd7fa4b82c036d8116b60b78f497316 (diff) | |
download | nixlib-01cfa808ff3dac60cf21f0fd8f22ff52ebc33820.tar nixlib-01cfa808ff3dac60cf21f0fd8f22ff52ebc33820.tar.gz nixlib-01cfa808ff3dac60cf21f0fd8f22ff52ebc33820.tar.bz2 nixlib-01cfa808ff3dac60cf21f0fd8f22ff52ebc33820.tar.lz nixlib-01cfa808ff3dac60cf21f0fd8f22ff52ebc33820.tar.xz nixlib-01cfa808ff3dac60cf21f0fd8f22ff52ebc33820.tar.zst nixlib-01cfa808ff3dac60cf21f0fd8f22ff52ebc33820.zip |
Merge pull request #43682 from primeos/never-stop-system.slice
nixos/switch-to-configuration: Never stop system.slice
Diffstat (limited to 'nixos/modules/system/activation')
-rw-r--r-- | nixos/modules/system/activation/switch-to-configuration.pl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/nixos/modules/system/activation/switch-to-configuration.pl b/nixos/modules/system/activation/switch-to-configuration.pl index 2ce04ed5342c..ecd35767e01d 100644 --- a/nixos/modules/system/activation/switch-to-configuration.pl +++ b/nixos/modules/system/activation/switch-to-configuration.pl @@ -166,6 +166,24 @@ while (my ($unit, $state) = each %{$activePrev}) { if (-e $prevUnitFile && ($state->{state} eq "active" || $state->{state} eq "activating")) { if (! -e $newUnitFile || abs_path($newUnitFile) eq "/dev/null") { + # Ignore (i.e. never stop) these units: + if ($unit eq "system.slice") { + # TODO: This can be removed a few months after 18.09 is out + # (i.e. after everyone switched away from 18.03). + # Problem: Restarting (stopping) system.slice would not only + # stop X11 but also most system units/services. We obviously + # don't want this happening to users when they switch from 18.03 + # to 18.09 or nixos-unstable. + # Reason: The following change in systemd: + # https://github.com/systemd/systemd/commit/d8e5a9338278d6602a0c552f01f298771a384798 + # The commit adds system.slice to the perpetual units, which + # means removing the unit file and adding it to the source code. + # This is done so that system.slice can't be stopped anymore but + # in our case it ironically would cause this script to stop + # system.slice because the unit was removed (and an older + # systemd version is still running). + next; + } my $unitInfo = parseUnit($prevUnitFile); $unitsToStop{$unit} = 1 if boolIsTrue($unitInfo->{'X-StopOnRemoval'} // "yes"); } |