stty: standard input: Invalid argument when using pdsh or ssh

Omer Dagan picture Omer Dagan · Jan 29, 2014 · Viewed 11.1k times · Source

I want to run a simple script from remote machine. The script contains the following:

#!/usr/bin/python

import os
print str(os.popen('stty size', 'r').read())

If I run it from local machine I get fine output, something like 36 138. If I try to run it from another machine, I get <ip>: stty: standard input: Invalid argument (using ssh ot pdsh).

The problem is I can't change the script that is using the stty command. This is a common script, which I write wrapper to. Suggestions ?

Answer

Omer Dagan picture Omer Dagan · Jan 29, 2014

As BroSlow said, ssh -t will solve the problem if using ssh.

If using pdsh via ssh, I used the following:

export PDSH_SSH_ARGS_APPEND="-tt -q"
pdsh -w ${machine_list} -S -R ssh ${cmd}

PDSH_SSH_ARGS_APPEND is used to append arguments to the ssh command generated by the pdsh, as the name hints.