【发布时间】:2011-05-17 00:02:43
【问题描述】:
在哪里可以通过重新执行正在运行的脚本来持久化对象?如果我想要一个正在运行的脚本重新执行自身以获取任何代码更改,(os.exec *)有没有办法在重新执行后保留对象以供访问?我可以使用腌制的 ascii 数据设置环境变量,或者将该数据写入管道并在重新执行后重新读取它,但这似乎不优雅或像 hack。即使这样做,也不是所有的东西都腌制得很好。
【问题讨论】:
-
“重新执行”是什么意思?您的脚本在同一个会话中被用户终止并再次运行?或者你的脚本使用 os.exec() 调用自己?
-
@boaz 脚本使用 os.exec 调用自身
-
那么这对我来说似乎是个坏主意,除非你想并行运行多个进程(但你不想要持久性)。 Python 有很多用于运行 Python 代码的工具,因此您不需要将 os.exec() 用于 Python 脚本。你看过 Greg 的解决方案吗?
-
Gregs 解决方案是我现在计划实施的方式。该进程将是嵌入式 linux 系统上的 init 进程,因此重新读取 init 代码的唯一其他选择是重新启动。这不是不可接受的,因为代码更改不应在开发后随 init 更改。我只是想模仿 sysvinit