【发布时间】:2021-05-07 22:49:11
【问题描述】:
我正在利用 Paramiko 库运行一系列远程 shell 命令。
最终的命令需要用户在终端设备上输入,我不需要等待执行完成;但是,在最后一个命令完成之前,我无法继续。
代码:
k = paramiko.RSAKey.from_private_key_file("....", password="....")
conn = paramiko.SSHClient()
conn.connect(hostname=ip_addr, username="root", pkey=k, password="....")
commands = ["chmod 755 /tmp/evtool", "nohup /tmp/test.sh >/dev/null 2>&1"]
for command in commands:
stdin, stdout, stderr = conn.exec_command(command)
conn.close()
有问题的命令是:
nohup /tmp/test.sh >/dev/null 2>&1
无论我如何尝试运行它:
/tmp/test.sh
/tmp/test.sh&
应用程序等待进程完成;但是完成可能需要几个小时,并且通过/失败会显示在远程单元上,我不需要等待结果。
我有几十个远程单元,上面的函数是从一个循环中调用的,该循环遍历单元 ip 地址并建立连接/运行测试。
任何想法如何不等待最后一个过程完成?
谢谢,丹。
【问题讨论】:
标签: python linux shell ssh paramiko