Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Net::OpenSSH and fork()

by sflitman (Hermit)
on Jul 23, 2010 at 04:14 UTC ( #850953=note: print w/replies, xml ) Need Help??


in reply to Net::OpenSSH and fork()

Based on my reading of the docs, Net::OpenSSH is already forking off separate processes. I'm not sure you're getting anything by doing the child processes in parallel, why not fire off each connection in a loop. Net::OpenSSH appears to support this directly (taken from its POD, added an example for $cmd, tested):
#!/usr/bin/perl use strict; use warnings; use Net::OpenSSH; my @hosts=( 'user@server1.com','user@server2.com','user@server3.com' ) +; my $cmd='uptime'; my %conn = map { $_ => Net::OpenSSH->new($_) } @hosts; my @pid; for my $host (@hosts) { open my($fh), '>', "/tmp/out-$host.txt" or die "unable to create file: $!"; push @pid, $conn{$host}->spawn({stdout_fh => $fh}, $cmd); } waitpid($_, 0) for @pid; exit;
The spawn command directly and asynchronously runs each remote host session. I'm always leery of fork, it is probably copying all the named sockets into each child process space which is why you lose them when one child closes. (Hmm, isn't there reference counting?)

HTH,
SSF

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://850953]
help
Chatterbox?
[Corion]: If all else fails, Spreadsheet::XLSX should be "installable" by manually copying the files, provided that the prerequisites are met
[thezip]: It fails in the "formatted 2-digit numeric" tests
[thezip]: Okay Corion, that's what I wanted to hear. Thanks!
[Corion]: Oh, a test failure... Just force-install it then? --force and potentially --notest to skip the tests alltogether ?
[ambrus]: thezip: is Activestate Perl usable for your scenario instead?
[MidLifeXis]: Yeah, --notest is good, not sure I would do --force.
[thezip]: It fails 2/10 tests in that group. What are the ramifications if I force it? What should I look for for?
[thezip]: I've migrated from ActiveState to Strawberry. No going back...
[thezip]: I'll try the --notest arg first when I get back from meetings (after lunch).
[thezip]: Thanks guys for your comments! :-)

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (13)
As of 2017-03-23 17:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (290 votes). Check out past polls.