从Paramiko Python ssh命令获取输出

时间:2018-08-12 19:05:28

标签: python python-3.x paramiko

通过paramiko运行iperf3服务器后,我试图获取PID。
但是,它似乎无法返回任何内容。

尝试1: 运行以下命令:nohup iperf3 -s >> /tmp/listen.txt 2>&1 & 返回:

[1] 12345

但是当我通过python脚本和paramiko运行它时,却没有输出:

try:
    test = paramiko.SSHClient()
    test.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    test.connect('127.0.0.1', port = 22, username, password)
    perf_comm = 'nohup iperf3 -s >> /tmp/listen.txt 2>&1 &'
    test_stdin, test_stdout, test_stderr  = test.exec_command(perf_comm)
    t1 = test_stdout.readlines()
    t2 = test_stderr.readlines()
    print len(t1)
    print len(t2)
    if len(t1) > 0:
        print "Complete1: " + t1[0] + "  " + str(len(t1))
        print "here1"
    if len(t2) > 0:
        print "Error2: " + str(t2[0])
        sys.exit(1)
    test.close()
except Exception as e:
    print str(e)
    test.close()

它不进入任何if语句,并且列表长度显示0。 但是它仍然可以成功运行服务器(我可以在ps中看到它) 如何获取它以返回PID。

注意:
我尝试以这种方式运行它,并在另一个ps命令中获取进程的PID,但似乎exec_command在第一次调用后关闭了通道。

0 个答案:

没有答案