使用python,我如何启动一个独立的python进程

时间:2015-10-14 19:27:20

标签: python python-3.x python-3.2 code-cleanup atexit

我正在制作一个python程序,让我们说A.哪个用于监视python脚本B

当python程序关闭时,有一个退出函数,通过atexit.register()注册,做一些清理它需要重新运行python脚本B,即使在python脚本A时也需要保持运行已关闭。

Python脚本B不能成为Python脚本A的一部分。

我需要做些什么来实现这一点,我已经尝试过一些事情,比如使用subprocess.Popen(programBCommand),但这似乎无法正常工作,因为它阻止A关闭。

我使用的是Debian操作系统

1 个答案:

答案 0 :(得分:0)

如果脚本B需要由脚本A启动,并且无论A是否完成(并且不阻止A退出)继续运行,那么您正在考虑编写UNIX守护进程。最简单的方法是使用python-daemon module使脚本B守护自身,而不需要更改工作目录,从父级分离等详细信息。

注意:守护进程(UNIX样式)与启动它的进程分离,因此您无法直接通过Popen对象从脚本A监视脚本B(它似乎立即退出) 。您需要安排其他形式的跟踪,例如通过某种间接方法将守护进程的pid识别或传递给脚本A.