【发布时间】:2017-07-27 11:39:36
【问题描述】:
我有一个 python 脚本,它也将 OpenVPN 作为子进程启动。但是我发现自己完全无法杀死启动的子进程。
p = Popen(["openvpn", "--config", conf], stdin=PIPE, stdout=PIPE, stderr=STDOUT)
# do some stuff
p.terminate()
# continue to do other stuff
我正在使用htop 监控进程列表,OpenVPN 不会停止,直到 python 脚本退出。
我已经尝试过:
- p.terminate()
- p.kill()
- p.terminate(),然后是 p.kill()
- os.kill(p.pid, 0)
- os.kill(p.pid, signal.SIGINT)
- os.kill(p.pid, signal.SIGKILL)
我还在杀戮尝试之前和之后添加了睡眠计时器,以验证这不仅仅是时间问题。
无论我尝试什么方法,脚本启动的 OpenVPN 子进程都不会死(被 htop 列为正在运行的进程),直到脚本退出。
如何终止 OpenVPN 子进程?
【问题讨论】:
标签: python linux python-3.x process subprocess