in reply to Re: getting the exact string used to call a perl script
in thread getting the exact string used to call a perl script

It's in the example, in my script my_ssh.pl, I need to run execute ssh, passing the same parameters that were passed to my script in the first place (which is pretending to be ssh).

As to why I'm doing that. Well, we have a system that executes ssh commands according to a workflow. There is a daemon that runs these ssh commands as child processes. However, they always fail with the following error

ssh: FATAL: ssh_io_register_fd: fd 0 already registered!
The ssh commands are fine elsewhere, so I'm writing a script that will pass the commands to another process, which will then execute them. Hoping that they will be okay, as they won't be invoked by the deamon directly.

(This is a stop gap until we can fix ssh properly.)

---
my name's not Keith, and I'm not reasonable.

Replies are listed 'Best First'.
Re^3: getting the exact string used to call a perl script
by Perl Mouse (Chaplain) on Oct 12, 2005 at 15:58 UTC
    I need to run execute ssh, passing the same parameters that were passed to my script in the first place
    So, what's wrong with:
    exec 'ssh', @ARGV; # Or system
    Perl --((8:>*
      nothing, I'd just never seen it before :P, talk about asking the wrong question.

      Thanks, to everyone++

      ---
      my name's not Keith, and I'm not reasonable.
Re^3: getting the exact string used to call a perl script
by ikegami (Patriarch) on Oct 12, 2005 at 16:00 UTC

    Be sure to just include the program name (optionally including the full path) as the first argument of exec/system, no redirection or anything else. Then you'll be doing the exact same as the shell. For example,

    exec('ssh', @ARGV); #or exec('/usr/bin/ssh', @ARGV);