【发布时间】:2019-02-27 18:49:19
【问题描述】:
听从How to terminate a python subprocess launched with shell=True的建议
我有一个从以下开始的过程
process = subprocess.Popen(my_cmd, shell=True, executable='/bin/bash', preexec_fn=os.setsid)
my_cmd 格式为some_cmd_that_periodically_outputs_to_stdout | grep "some_fancy_regex" > some_output_file.txt
我用以下命令终止进程
os.killpg(os.getpgid(process.pid), signal.SIGKILL)
杀死后,我收到以下警告
ResourceWarning: subprocess XXX is still running
为什么我会收到此警告?
【问题讨论】:
-
删除这个你可能不需要的该死的
shell=True,它会起作用的......或点击欺骗链接。 -
但这正是我得到这个警告的方式,通过复制链接
-
哦,对了。让我检查一下。您是否尝试过这个解决方案:stackoverflow.com/a/25134985/6451573 可能更好(我自己测试过)
-
我仍然收到同样的警告。我不认为这是重复的,因为我的问题是问我为什么会收到此警告以及下面发生了什么。 (虽然知道如何解决它会是一个奖励)
-
您是否尝试删除
shell=True?我觉得没用。如果没有中间的 shell 进程,这会让事情变得更容易
标签: python subprocess