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