mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-17 09:34:36 +00:00
nixos/switch-to-configuration: Lock the switch
This prevents any concurrent switches from happening which is not an issue I have seen people complaining about but it seems like a good measure.
This commit is contained in:
parent
3397af26c4
commit
5d7723dd5b
@ -22,6 +22,7 @@ use JSON::PP;
|
||||
use IPC::Cmd;
|
||||
use Sys::Syslog qw(:standard :macros);
|
||||
use Cwd qw(abs_path);
|
||||
use Fcntl ':flock';
|
||||
|
||||
## no critic(ControlStructures::ProhibitDeepNests)
|
||||
## no critic(ErrorHandling::RequireCarping)
|
||||
@ -91,6 +92,8 @@ if (!-f "/etc/NIXOS" && (read_file("/etc/os-release", err_mode => "quiet") // ""
|
||||
}
|
||||
|
||||
make_path("/run/nixos", { mode => oct(755) });
|
||||
open(my $stc_lock, '>>', '/run/nixos/switch-to-configuration.lock') or die "Could not open lock - $!";
|
||||
flock($stc_lock, LOCK_EX) or die "Could not acquire lock - $!";
|
||||
openlog("nixos", "", LOG_USER);
|
||||
|
||||
# Install or update the bootloader.
|
||||
@ -983,4 +986,5 @@ if ($res == 0) {
|
||||
syslog(LOG_ERR, "switching to system configuration $toplevel failed (status $res)");
|
||||
}
|
||||
|
||||
close($stc_lock) or die "Could not close lock - $!";
|
||||
exit($res);
|
||||
|
Loading…
Reference in New Issue
Block a user