Hi,
I'm using dvd::rip in cluster mode and I had some trouble getting started,
because apparently dvd::rip expects the login shell of cluster nodes to be a
Bourne-like shell (e.g. sh, bash). I don't think this is by design, as I
don't think it's mentioned in the documentation.
Specifically, the problem occurs with the test command that gets executed over
SSH to determine if the node is set up properly. The command looks like this:
sh -c 'command; command; command' 2>&1
When using a C-like shell, the redirection command doesn't work as intented
(ouput goes to a file named "1") and dvd::rip reports an obscure error. It
took me a while to figure out what went wrong.
As far as I can tell, the actual transcoding commands do not involve I/O
redirection and work fine. Therefore I would suggest changing the test
command to something like this:
sh -c ' ( command; command; command ) 2>&1'
That should ensure that the redirection is performed by sh. Alternatively, the
prepare_command subroutine might need to escape the entire command and
explicitly execute it in a sh subshell, so instead of this:
execflow ssh user@host "command"
Something like:
execflow ssh user@host sh -c "escaped command"
This ensures that the command is interpreted entirely by sh and should
completely eliminate incompatibilities caused by the shell.
Any thoughts?
Kind regards,
Maks Verver.
|