【发布时间】:2020-06-10 08:53:49
【问题描述】:
这里首先供参考的是answer 问题“如何终止使用 shell=True 启动的 python 子进程”
在这种情况下,用户正在启动一个子进程,他想稍后终止它。我试过了,效果很好。
现在,我想在远程机器上做类似的事情。远程机器可以通过 ssh 访问没有问题。
所以我有
import os
import signal
import subprocess
import time
SERVER = "remote_server"
#Here initiate a subprocess that measures the cpu but this time remotely
pro= subprocess.Popen("ssh "+SERVER+ " sar -u 1 > mylog.log")
time.sleep(10)
#here kill the process (what should I put HERE??
#Kill the remote process
如您所见,我启动了一个在远程机器上运行sar -u 1 > mylog.log 的进程。此过程将开始运行
10 秒后,我希望远程进程停止。怎么弄死它??
我认为简单地输入os.killpg(os.getpgid(pro.pid), signal.SIGTERM) 不会杀死它,不是吗?
【问题讨论】:
-
以下 Hack5 的解决方案是否适用于这个用例?我正在寻找相同问题的解决方案。
标签: python linux subprocess remote-access kill-process