summary refs log tree commit diff
path: root/pkgs/tools/virtualization
diff options
context:
space:
mode:
authorNikita Uvarov <uv.nikita@gmail.com>2019-08-23 12:12:17 +0200
committerNikita Uvarov <uv.nikita@gmail.com>2019-08-23 12:21:22 +0200
commit7cb100b6833e020d4a4b25c3766cfde507e763e6 (patch)
treeea3b1fdff2b581481825db549d943f4dd5df3b4b /pkgs/tools/virtualization
parentf096e5a46d89d3b4834732fd017fb27d85cc64b6 (diff)
downloadnixpkgs-7cb100b6833e020d4a4b25c3766cfde507e763e6.tar
nixpkgs-7cb100b6833e020d4a4b25c3766cfde507e763e6.tar.gz
nixpkgs-7cb100b6833e020d4a4b25c3766cfde507e763e6.tar.bz2
nixpkgs-7cb100b6833e020d4a4b25c3766cfde507e763e6.tar.lz
nixpkgs-7cb100b6833e020d4a4b25c3766cfde507e763e6.tar.xz
nixpkgs-7cb100b6833e020d4a4b25c3766cfde507e763e6.tar.zst
nixpkgs-7cb100b6833e020d4a4b25c3766cfde507e763e6.zip
nixos-container: use systemd-run instead of nsenter
This is the first step for unprivileged nixos containers support.
Fixes #30019. See also #18825, #57083, and #67130.
Diffstat (limited to 'pkgs/tools/virtualization')
-rwxr-xr-xpkgs/tools/virtualization/nixos-container/nixos-container.pl8
1 files changed, 4 insertions, 4 deletions
diff --git a/pkgs/tools/virtualization/nixos-container/nixos-container.pl b/pkgs/tools/virtualization/nixos-container/nixos-container.pl
index b5ceb522e23..2a9625501b6 100755
--- a/pkgs/tools/virtualization/nixos-container/nixos-container.pl
+++ b/pkgs/tools/virtualization/nixos-container/nixos-container.pl
@@ -9,7 +9,6 @@ use Getopt::Long qw(:config gnu_getopt);
 use Cwd 'abs_path';
 use Time::HiRes;
 
-my $nsenter = "@utillinux@/bin/nsenter";
 my $su = "@su@";
 
 # Ensure a consistent umask.
@@ -270,9 +269,10 @@ sub restartContainer {
 # Run a command in the container.
 sub runInContainer {
     my @args = @_;
-    my $leader = getLeader;
-    exec($nsenter, "-t", $leader, "-m", "-u", "-i", "-n", "-p", "--", @args);
-    die "cannot run ‘nsenter’: $!\n";
+
+    exec("systemd-run", "--machine", $containerName, "--pty", "--quiet", "--", @args);
+
+    die "cannot run ‘systemd-run’: $!\n";
 }
 
 # Remove a directory while recursively unmounting all mounted filesystems within