X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FLEI.pm;h=f9361c68240fac3f331ea01fa130b6603eefb249;hb=db56b898582789a0962e82b2c3cff56dd110d951;hp=69d48bd1b2da048f59e8311a990fa88917cc106e;hpb=883db1e765b9fd0af7ed50b8c5df5527f566f0ba;p=public-inbox.git diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm index 69d48bd1..f9361c68 100644 --- a/lib/PublicInbox/LEI.pm +++ b/lib/PublicInbox/LEI.pm @@ -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));