我正在尝试从python脚本执行bash脚本while :; do afplay beep.wav ; done
命令,但之后可以杀死它。
我试过了:
process = subprocess.Popen("exec while :; do afplay %s ; done" % fileName, shell=True, executable='/bin/bash')
如this answer所示,但上述内容并不适用于我。 (脚本不会运行。)
如何从python运行while :; do afplay beep.wav ; done
并在启动后的任何时候终止它?
编辑:只是注意到exec >(while :; do afplay %s; done)
会启动脚本,但现在process.kill()
不会杀死它。
答案 0 :(得分:1)
os.killpg(os.getpgid(process.pid), signal.SIGINT)
这似乎可以解决问题。我正在杀死进程组(os.killpg
),而不是唯一的进程。