3

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

  • 启动它们。
  • 阻止他们。
  • 询问他们是否仍在运行。

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

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

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

4

1 回答 1

7

您可以使用subprocess.Popen启动另一个进程,并保存生成的Popen 对象。使用该对象上的方法,您可以检查进程是否还活着,等待它完成,终止它,杀死它——所有这些都没有任何基于 pid 的混淆风险!另外,这也是一种更跨平台的方法,尽管在这种情况下您可能并不特别关心。

于 2010-06-02T21:22:28.423 回答