我想从python(我在Linux下)控制几个相同类型的子进程.我想要:
我可以使用spawnl启动进程,并获取pid.使用这个pid我可以用kill来阻止它.而且我确信还有一种方法可以询问它是否与pid一起运行.
问题是,如果发生以下情况怎么办:我开始一个过程,记住pid.该过程在我没有注意到的情况下结束,另一个完全不同的过程开始被分配相同的pid.我试图杀死我的进程,我杀了一个完全不同的进程.
在python中启动和控制进程的更好方法是什么?谢谢!
您可以使用subprocess.Popen启动其他进程,并保存生成的Popen对象.使用该对象上的方法,您可以检查进程是否仍然存在,等待它完成,终止它,终止它 - 所有这些都没有任何基于pid的混淆风险!另外,这也是一种更加跨平台的方法,尽管在这种情况下您可能并不特别关注.