diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2020-02-19 12:57:45 +0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2020-02-19 12:57:45 +0100 |
commit | f3505a78991458e8cc447d9bde0be5ff1aa39335 (patch) | |
tree | 1056f6ab21a4a608ead8acfee189b6561aed579f /src/libstore | |
parent | 30c8297ded3caf7ebd862d5eef23333b19a9b554 (diff) | |
parent | 906afedd238e4d83ef9ea4cf5a3aca77e980d582 (diff) |
Merge remote-tracking branch 'origin/master' into flakes
Diffstat (limited to 'src/libstore')
-rw-r--r-- | src/libstore/ssh.cc | 10 |
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; |