我正在使用 Python 模块 Paramiko 通过 SSH 连接到 Linux 机器并执行两个 C 程序。 Program1 在触发时在 DAQ 设备上生成信号。它等待触发器并在 5 秒后终止。 Program2 生成触发器。
这是我的 Python 类:
class test:
server = "localhost"
username = "root"
password = "12345"
def ssh (self, cmd = ""):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(self.server,username=self.username,password=self.password)
stdin, stdout, stderr = ssh.exec_command(cmd)
result = stdout.read().splitlines()
if len(result)!= 0:
return result
else:
return -1
test.ssh("program1")
test.ssh("program2")
问题是 program2 是在 program1 已经终止之后执行的,所以它不会生成任何东西。 有没有办法让我运行 program2 的速度比 program1 快? 我试过了
test.ssh("program1 &")
test.ssh("program2")
但无济于事。如果我在两个终端 shell 中手动运行这些程序,那么它就可以正常工作。有什么想法吗?
最佳答案
可以使用线程或多进程在不同的 session 中执行这两个程序
import multiprocessing
input = ["program1","program2"]
for i in range(2):
p = mutiprocessing.Process(target=test.ssh,args=(input[i],))
p.start()
processlist.append(p)
for p in processlist:
p.join()
关于python - 使用 python paramiko fork ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20005790/