リモートマシン上でプロセスを実行したいのですが、ホストプログラムが終了したときにプロセスを終了したいと思っています。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()
paramiko
インポート:
import time
while True:
print('hello')
time.sleep(1)
を、私はこの1つのようなスクリプトを経由してリモートマシン上でこのプロセスを開始
しかし、私の問題は、SSH接続を開始したPythonプロセスを閉じた後でも、開始されたプロセスが実行し続けることです。
ホストプロセスが終了したときにリモートセッションとリモートで開始されたプロセスを強制的に閉じる方法はありますか?
編集:
This questionは似て聞こえるが、何の満足の行く答えはありません。私はkeepalive
を設定しようとしたが効果なしで:
ssh.get_transport().set_keepalive(1)