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

b5lpy0ml  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(119)

我们有java进程(cassandra服务)在我们的Linux机器上运行jdk 1.6,我们确实使用rpm包将机器上的JDK从1.6升级到1.7,而没有停止运行早期版本java的进程(/usr/bin/jdk1.6/bin/java)。
成功升级后,旧版本的jdk从机器中删除,只有新版本(1.7)可用,但之前使用旧版本(1.6)运行的进程没有受到影响,仍然从旧路径运行。即使进程显示的旧java路径现在在机器中不存在。
有人能解释一下这种行为吗?

lsmepo6l

lsmepo6l1#

这是Unix/Linux处理打开文件的方式。旧版本的卸载要求操作系统取消链接文件。然而,它们仍然是开放的(这可以用lsof来显示),所以仍然被认为是有效的。一旦所有打开的文件句柄被关闭,这些文件将被“永久”删除。多一点信息可以是found here

相关问题