我可以使用paramiko.SSHClient.exec_command()
来模仿ssh -n
命令行选项吗?
-n' Redirects stdin from /dev/null (actually, prevents reading from stdin).
我唯一的解决方案是使命令混乱并显式管理stdin。
在此示例中,bash脚本等待一行stdin。检查exit_status可让我确定远程脚本是否已完成。
>>> import paramiko
>>> client = paramiko.SSHClient()
>>> client.connect(**kwargs)
>>> i, o, e = client.exec_command("cat /tmp/one_input.sh")
>>> o.channel.exit_status_ready()
True
>>> print o.read()
echo "started"
read
echo "done"
>>> i, o, e = client.exec_command("bash /tmp/one_input.sh")
>>> o.channel.exit_status_ready()
False
>>> i.write("\n")
>>> o.channel.exit_status_ready()
True
>>> i, o, e = client.exec_command("bash /tmp/one_input.sh </dev/null")
>>> o.channel.exit_status_ready()
True
答案 0 :(得分:0)
stdin.channel.shutdown_write()
有效
参考文献: