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.
| [reply] [d/l] |
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
| [reply] [d/l] |
| [reply] |
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);
| [reply] [d/l] [select] |