in reply to Re^8: Capture::Tiny alternative
in thread Capture::Tiny alternative

Hi! Thanks for explanation. Not sure If I understood all you told here. But what I already tried and here the results:

sshuttle -D ... 2>&- - hangs, when gets run by Perl script:

$ cat test.bash
/usr/sbin/sshuttle -v -D -r vagrant@127.0.0.1 192.168.0.0/24 2>&-
echo OK

$ cat capture-tiny.pl

use Capture::Tiny qw{tee};
tee {
  system('bash test.bash');
};

vagrant@Debian-jessie-amd64-netboot:~/my/IPC-sshutle-issue$ perl capture-tiny.pl
vagrant@127.0.0.1's password:
Connected.
OK
# hangs here

The same result (hangs) with sshutle -D ... 2>&- | cat

$ cat test.bash
/usr/sbin/sshuttle -v -D -r vagrant@127.0.0.1 192.168.0.0/24 2>&- | cat
echo OK

And the same result (hangs) with #$SIG{'TSTP'} = 'IGNORE';

$ cat capture-tiny.pl

$SIG{'TSTP'} = 'IGNORE';
use Capture::Tiny qw{tee};
tee {
  system('bash test.bash');
};

Probably I do something wrong?

PS. I have not succeed with IO:Pty script example yet, as it seems a bit complicated for me.

Replies are listed 'Best First'.
Re^10: Capture::Tiny alternative
by Anonymous Monk on Mar 26, 2017 at 19:50 UTC

    Well, reconsidering the ps output you've shown earlier, I think what may be happening here is the service daemonizes too late (after launching its logger process). If so, the output pipe is inherited by logger and never closed on the writer(s) side.

    Whatever the actual cause, I'd suggest filing a ticket with the sshuttle software vendor.

      Sure, I agree, the further troubleshooting would be better from sshutle side. Will put an issue for shuttle project later. Thanks for participation!