【问题标题】:Using python, how do I launch an independent python process使用python,如何启动一个独立的python进程
【发布时间】:2015-10-14 19:27:20
【问题描述】:

我正在制作一个python程序,比如说A。用于监控python脚本B

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

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

我需要做些什么来实现这一点,我已经尝试了一些方法,比如使用 subprocess.Popen(programBCommand),但这似乎不起作用,因为它会阻止 A 关闭。

我使用的是 Debian 操作系统

【问题讨论】:

  • 为什么不能更好地做到这一点?

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


【解决方案1】:

如果脚本 B 需要由脚本 A 启动,并且无论 A 是否完成都继续运行(并且不阻止 A 退出),那么您正在考虑编写一个 UNIX 守护进程。最简单的方法是使用python-daemon module 使脚本 B 自己守护进程,而无需对更改工作目录、与父级分离等细节进行大量明确的处理。

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

【讨论】:

    猜你喜欢
    • 2012-07-20
    • 2014-07-15
    • 2012-11-15
    • 1970-01-01
    • 2021-06-27
    • 2018-05-12
    • 2015-02-21
    • 2020-11-12
    • 2016-10-07
    相关资源
    最近更新 更多