正如标题所说。如果我运行 yum update(它是一个 CentOS 机器)并且恰好有一个 Python 更新。如果其他用户正在运行 Python 程序会发生什么。我需要提醒他们重新启动程序吗?或者,如果他们愿意,他们是否可以基本上无限期地安全地继续运行这些程序?
换个方式问:旧的 Python 版本是否会在系统(硬盘)上保留,只要有一些进程仍然打开。还是更新会立即覆盖现有的 Python 安装/二进制文件?所以现有进程继续运行只是因为 Python 解释器完全加载到内存中?
正如标题所说。如果我运行 yum update(它是一个 CentOS 机器)并且恰好有一个 Python 更新。如果其他用户正在运行 Python 程序会发生什么。我需要提醒他们重新启动程序吗?或者,如果他们愿意,他们是否可以基本上无限期地安全地继续运行这些程序?
换个方式问:旧的 Python 版本是否会在系统(硬盘)上保留,只要有一些进程仍然打开。还是更新会立即覆盖现有的 Python 安装/二进制文件?所以现有进程继续运行只是因为 Python 解释器完全加载到内存中?
从一般的角度来看,更新后的程序可以继续运行,只要您愿意,但在您重新启动它们之前,Python 解释器中的修复当然不会可用。检查更改日志以查看这是否会影响您。
是的。
好吧,正如 SvW 正确指出的那样,您不需要,但您应该. 程序将继续运行,但取决于它们的编写方式,理论上它们可能会在更新后尝试加载更新的、不兼容的包。
编辑,回答您的“不同要求”的问题:是的 - 可以使用 POSIX 删除打开的文件,但这实际上只是将其隐藏在其他进程中,直到在打开的句柄被释放时可以确定地删除它。SE.SO 上提供了一些 C-API 信息。