]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LEI.pm
lei: fix git-credential handling
[public-inbox.git] / lib / PublicInbox / LEI.pm
index 69d48bd1b2da048f59e8311a990fa88917cc106e..f9361c68240fac3f331ea01fa130b6603eefb249 100644 (file)
@@ -839,7 +839,13 @@ sub start_mua {
        if (my $sock = $self->{sock}) { # lei(1) client process runs it
                send($sock, exec_buf(\@cmd, {}), MSG_EOR);
        } elsif ($self->{oneshot}) {
-               $self->{"pid.$self.$$"}->{spawn(\@cmd)} = \@cmd;
+               my $pid = fork // die "fork: $!";
+               if ($pid > 0) { # original process
+                       exec(@cmd);
+                       warn "exec @cmd: $!\n";
+                       POSIX::_exit(1);
+               }
+               POSIX::setsid() > 0 or die "setsid: $!";
        }
        if ($self->{lxs} && $self->{au_done}) { # kick wait_startq
                syswrite($self->{au_done}, 'q' x ($self->{lxs}->{jobs} // 0));