Python,脚本结束时关闭具有不同SID的子进程

标签 python linux subprocess python-multithreading

我有一个使用 subprocess.Popen 启动子进程的 python 脚本。然后子进程启动一个外部命令(在我的例子中,它播放 mp3)。 python脚本需要能够中断子进程,所以我使用了描述的方法here它为子进程提供了自己的 session ID。不幸的是,当我现在关闭 python 脚本时,子进程将继续运行。

如何确保子进程从脚本启动,但在 python 脚本停止时给定不同的 session ID 仍然关闭?

最佳答案


Is there any way to kill a Thread in Python? 并确保将其用作线程

import threading
from subprocess import call
def thread_second():
    call(["python", "secondscript.py"])
processThread = threading.Thread(target=thread_second)  # <- note extra ','
processThread.start()

print 'the file is run in the background'

关于Python,脚本结束时关闭具有不同SID的子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45404492/

相关文章:

python - 如何直接设置 Bokeh 图x轴的宽度

python - Pandas:使用列值的随机采样替换 NaN

linux - 如何在Linux中发送自动电子邮件?

linux - 当我在树莓派 3 模型 B v1.2 中出现 "make"opencv2-4-9 时出错

linux - 客户端A发送数据包时将源MAC地址更改为客户端B,但客户端B的模块在服务器发送后无法接收数据包

python - 在 python 中结束线程的生命?

python - np.argsort() 的奇怪/错误输出

ruby - 如何在不 fork 的情况下运行 shell 命令

python - 命令在 bash 终端中工作,但在 Python subprocess.Popen() 中不工作;收到 'paths must precede expression: ` %p' 错误

python - python 程序如何运行另一个 python 程序,就好像它是从单独的 SSH 终端运行一样?