我正在制作一个python程序,让我们说A.哪个用于监视python脚本B
当python程序关闭时,有一个退出函数,通过atexit.register()注册,做一些清理它需要重新运行python脚本B,即使在python脚本A时也需要保持运行已关闭。
Python脚本B不能成为Python脚本A的一部分。
我需要做些什么来实现这一点,我已经尝试过一些事情,比如使用subprocess.Popen(programBCommand),但这似乎无法正常工作,因为它阻止A关闭。
我使用的是Debian操作系统
答案 0 :(得分:0)
如果脚本B需要由脚本A启动,并且无论A是否完成(并且不阻止A退出)继续运行,那么您正在考虑编写UNIX守护进程。最简单的方法是使用python-daemon
module使脚本B守护自身,而不需要更改工作目录,从父级分离等详细信息。
注意:守护进程(UNIX样式)与启动它的进程分离,因此您无法直接通过Popen
对象从脚本A监视脚本B(它似乎立即退出) 。您需要安排其他形式的跟踪,例如通过某种间接方法将守护进程的pid识别或传递给脚本A.