python - Python 通过 ssh 子进程运行程序并在运行时获取它的标准输出
问题描述
我有一个运行图像处理线程的 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 ?)但没有找到任何类似的应用程序。
有人有这方面的一些信息吗?我应该完全使用其他东西吗?
谢谢
解决方案
推荐阅读
- python-3.x - 使用 Apache Beam Python 为每个窗口编写唯一的 parquet 文件
- python - BeautifulSoup4 并检索第一个 td 内容
- google-apps-script - getActiveUser getEmail 权限问题
- python - Pandas/GeoPandas 就地赋值
- sql - Sql Azure - 跨数据库查询
- reactjs - 使用带有附加道具的“styled()”MUI 实用程序(Typescript)
- alpine - Alpine 软件包版本中的“rN”是什么意思?
- python - Mypy 允许 `List[str]` 具有 `Tuple[str, List[str]]` 类型的值
- django - “django-admin makemigrations”命令上的 django 错误
- cakephp - 从父控制器创建新的 hasMany 孩子