从Python控制进程

我想从
python(我在linux下)控制几个相同类型的子进程.

我想要:

>启动他们.
>阻止他们.
>询问他们是否还在运行.

我可以使用spawnl启动进程,并获取pid.使用这个pid我可以用kill来阻止它.而且我确信还有一种方法可以询问它是否与pid一起运行.

问题是,如果发生以下情况该怎么办:
我开始一个过程,记住pid.该过程在我没有注意到的情况下结束,另一个完全不同的过程开始被分配相同的pid.我试图杀死我的进程,我杀了一个完全不同的进程.

在python中启动和控制进程的更好方法是什么?
谢谢!

最佳答案 您可以使用
subprocess.Popen启动其他进程,并保存生成的
Popen object.通过该对象上的方法,您可以检查进程是否仍然存活,等待它完成,终止它,终止它 – 所有没有任何pid风险基于混乱!另外,这也是一种更加跨平台的方法,尽管在这种情况下您可能并不特别关注.

点赞