我想在遠程機器上運行一個進程,並希望在我的主機程序退出時終止進程。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)