aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2020-02-19 12:57:45 +0100
committerEelco Dolstra <edolstra@gmail.com>2020-02-19 12:57:45 +0100
commitf3505a78991458e8cc447d9bde0be5ff1aa39335 (patch)
tree1056f6ab21a4a608ead8acfee189b6561aed579f /src/libstore
parent30c8297ded3caf7ebd862d5eef23333b19a9b554 (diff)
parent906afedd238e4d83ef9ea4cf5a3aca77e980d582 (diff)
Merge remote-tracking branch 'origin/master' into flakes
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/ssh.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libstore/ssh.cc b/src/libstore/ssh.cc
index 2ee7115c5..84548a6e4 100644
--- a/src/libstore/ssh.cc
+++ b/src/libstore/ssh.cc
@@ -33,6 +33,9 @@ std::unique_ptr<SSHMaster::Connection> SSHMaster::startCommand(const std::string
out.create();
auto conn = std::make_unique<Connection>();
+ ProcessOptions options;
+ options.dieWithParent = false;
+
conn->sshPid = startProcess([&]() {
restoreSignals();
@@ -64,7 +67,7 @@ std::unique_ptr<SSHMaster::Connection> SSHMaster::startCommand(const std::string
// could not exec ssh/bash
throw SysError("unable to execute '%s'", args.front());
- });
+ }, options);
in.readSide = -1;
@@ -91,6 +94,9 @@ Path SSHMaster::startMaster()
Pipe out;
out.create();
+ ProcessOptions options;
+ options.dieWithParent = false;
+
state->sshMaster = startProcess([&]() {
restoreSignals();
@@ -110,7 +116,7 @@ Path SSHMaster::startMaster()
execvp(args.begin()->c_str(), stringsToCharPtrs(args).data());
throw SysError("unable to execute '%s'", args.front());
- });
+ }, options);
out.writeSide = -1;