diff options
author | Franz Pletz <fpletz@fnordicwalking.de> | 2018-11-14 03:25:45 +0100 |
---|---|---|
committer | Linus Heckemann <git@sphalerite.org> | 2019-11-25 14:43:49 +0100 |
commit | 89806e95363f06869c9de18586e32c8ef65bd2fd (patch) | |
tree | 24ead4cd8cc1d9b61fa47a5b38f1a20b3991374f /nixos/modules/system | |
parent | e3e3bd61f8f530dec5f560e76db4788899bbb942 (diff) |
nixos/switch-to-configuration: restart changed socket units
Previously, socket units wouldn't be restarted if they were changed. To restart the socket, the service the socket is attached to needs to be stopped first before the socket can be restarted.
Diffstat (limited to 'nixos/modules/system')
-rw-r--r-- | nixos/modules/system/activation/switch-to-configuration.pl | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/nixos/modules/system/activation/switch-to-configuration.pl b/nixos/modules/system/activation/switch-to-configuration.pl index 641cf9faadc97..12a80a12d19f4 100644 --- a/nixos/modules/system/activation/switch-to-configuration.pl +++ b/nixos/modules/system/activation/switch-to-configuration.pl @@ -214,7 +214,17 @@ while (my ($unit, $state) = each %{$activePrev}) { # Reload the changed mount unit to force a remount. $unitsToReload{$unit} = 1; recordUnit($reloadListFile, $unit); - } elsif ($unit =~ /\.socket$/ || $unit =~ /\.path$/ || $unit =~ /\.slice$/) { + } elsif ($unit =~ /\.socket$/) { + my $unitInfo = parseUnit($newUnitFile); + # If a socket unit has been changed, the corresponding + # service unit has to be stopped before the socket can + # be restarted. The service will be started again on demand. + my $serviceUnit = $unitInfo->{'Unit'} // "$baseName.service"; + $unitsToStop{$serviceUnit} = 1; + $unitsToStop{$unit} = 1; + $unitsToStart{$unit} = 1; + recordUnit($startListFile, $unit); + } elsif ($unit =~ /\.path$/ || $unit =~ /\.slice$/) { # FIXME: do something? } else { my $unitInfo = parseUnit($newUnitFile); |