【问题标题】:Python run a program through a ssh subprocess and get it's stdout while runningPython 通过 ssh 子进程运行程序并在运行时获取它的标准输出
【发布时间】:2018-12-06 12:09:02
【问题描述】:

我有一个运行图像处理线程的 python 脚本,我希望这个脚本在另一台机器上启动另一个脚本。第一个脚本应该从图像处理线程获取数据,将它们发送到第二个脚本,并在一切运行时从第二个脚本获取标准输出。

我成功通过ssh 使用spur 库运行了一个程序。我能够向该程序发送数据,但在它仍在运行时无法获得它的标准输出(必须等待该过程完成):

进口刺激 # Open SSH connection print("Connection ...") ssh = spur.SshShell( hostname="host", username="name", password="pswd", missing_host_key=spur.ssh.MissingHostKey.accept, ) # start program in a process (on the second machine) process = ssh.spawn(["sudo", "python3.6", "program.py"]) c=0 while True: print("send data : " + str(c)) process.stdin_write(str(c)) c+=1

我试图以其他方式查找任何信息,可能使用其他包(如 paramiko ?),但没有找到任何类似的应用程序。

有人有这方面的信息吗?我应该完全使用其他东西吗?

谢谢

【问题讨论】:

  • 你是在linux机器还是windows上运行这段代码?

标签: python ssh subprocess stdout paramiko


【解决方案1】:

【讨论】:

  • 这就是为什么我问他是否在 Linux 上。我经常在工作中使用 pexpect 自动化 ssh,但我上次检查 windows 实现时没有工作。
  • 确实可以,但我在 Windows 上。我认为我会更好地尝试打开套接字进行通信。
猜你喜欢
  • 1970-01-01
  • 2011-07-21
  • 2015-10-07
  • 2010-10-06
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多