在 Linux 中基于 rpm 的 JDK 从 1.6 升级到 1.7 期间,现有的 java 进程不受影响

问题描述 投票:0回答:1

我们的 Linux 机器上有运行 jdk 1.6 的 java 进程(cassandra 服务),并且我们使用 rpm 包将机器中的 JDK 从 1.6 升级到 1.7,而无需停止该进程(/usr/bin/jdk1.6/bin/java ),它们与早期版本的 java 一起运行。

升级成功后,旧版本的jdk从机器上删除,只有新版本(1.7)可用,但之前使用旧版本(1.6)运行的进程不受影响,仍然从旧版本运行小路。尽管该进程显示的旧 java 路径现在在机器中不存在。

有人可以向我解释一下这种行为吗?

linux upgrade java-6
1个回答
2
投票

这是 Unix/Linux 处理打开文件的方式。旧版本的卸载要求操作系统取消文件链接。然而,它们仍然开放(可以用

lsof
显示),因此仍然被认为是有效的。一旦关闭所有打开的文件句柄,这些文件将被“永久”删除。更多信息可以在这里找到

© www.soinside.com 2019 - 2024. All rights reserved.