我发现使用Paramiko在远程SSH服务器上后台运行进程很困难。 我使用了以下命令:
stdin, stdout, stderr = ssh.exec_command('executefile.py &')
我发现并没有找到正在运行的executefile.py
进程。
于是我尝试了另外一种方式,包含反斜杠:
stdin, stdout, stderr = ssh.exec_command('executefile.py \&')
这种方法行得通。在机器上有一个实例,但并不意外,它没有在后台运行。我可以知道它没有在后台运行,因为当代码在此行之后卡住时,我就会知道。它是:
all_inf = stdout.readlines()
现在代码无法继续执行,除非脚本的进程被杀死。 我正在学习Paramiko,感谢您给予的任何帮助。
&
。 - WyrmwoodSSHClient.exec_command
内部执行的是第二段代码相同的操作。唯一的区别在于它返回输出流。也许在某些情况下这可能会有所不同。关闭它们可能会解决这种差异。 - Martin Prikrylinvoke_shell
来解决问题。 - ching-yu