我想在远程机器上运行一个进程,并希望在我的主机程序退出时终止进程。paramiko:自动终止远程启动的进程
我有一个小的测试脚本,看起来像这样:
import time
while True:
print('hello')
time.sleep(1)
,我通过类似的脚本启动远程机器上的这个过程中这一个:
进口的paramiko
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('my_machine', username='root', key_filename='some_key')
_in, _out, _err = ssh.exec_command('python /home/me/loop.py')
time.sleep(5) # could do something with in/out/err
ssh.close()
但我的问题是,即使在我关闭了启动SSH连接的Python进程后,启动的进程仍然继续运行。
当主进程终止时,是否有强制关闭远程会话和远程启动进程的方法?
编辑:
This question听起来很相似,但没有令人满意的答案。我试图设置keepalive
但没有效果:
ssh.get_transport().set_keepalive(1)