python - python守护进程中的子进程kill

标签 python subprocess daemon

我在运行外部程序的 python 中有 damon:

subprocess.call(["java", "-jar", "start.jar"])

当我杀死守护进程时,子进程(java)仍在运行

我怎样才能让子进程也被杀死?

最佳答案

使用 subprocess.Popen() 而不是 subprocess.call()。例如:

import subprocess
my_process = subprocess.Popen(['ls', '-l'])

终止 child :

my_process.kill()

要捕获终止信号,您可以这样做:

import signal
import sys
def signal_handler(signal, frame):
    sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)

关于python - python守护进程中的子进程kill,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5114812/

相关文章:

Windows 上的 Python 包 : pip or native installers?

具有日志功能的 c Pipes shell 守护进程无法正常工作

perl - 守护一个 perl 脚本

python - MySQL、fetchone 和 LIMIT

python - 为什么错误不是python中的tk属性?

python - Tkinter:在用户键入数据时格式化数据

python - 无需等待子进程在 Windows 上终止即可与子进程通信

python - 为进度条解析 apt-get install 的输出

Python - 隐藏/最小化子进程窗口

ruby-on-rails - Ruby 守护进程和 bluepill 监控