Linux/Centos 环境 shell 会话关闭后,java进程被结束

Linux/Centos 环境 shell 会话关闭后,java进程被结束
操作环境、软件版本等信息

Centos 7.9.2009
Java8

问题场景:

1、 原启动命令 java -jar xxx.jar > test.log 2>&1 & 在 start.sh 脚本文件里
2、有两台一样的服务器, 环境配置都一样; 之前一直是正常的(shell 会话关闭 , 也可正常运行)
3、其中一台重启后,手动上去执行此脚本启动后;会话关闭进程就没了

尝试过的解决方法

1、 在命令前增加 nohup , 尝试无效
2、 在命令前增加 nohup ,并使用 exit 退出shell会话, 尝试无效
3、 检查设置参数 shopt huponexit huponexit 原本值就为 off, 尝试重新设置后, 一样无效

我想要达到的结果

1、希望能像另一台一样,关闭shell会话,不影响java进程正常运行

是否有遇到过类似情况? 或知道具体原因的,望不吝赐教,感谢!

使用 nohup 命令,但是后面java的jar文件要使用【绝对路径】,必须绝对路径 不要用相对路径

--

他这问题,关闭SSH连接后,程序被强制终止,不止是java程序其他的程序也被关闭,尝试过nohup命令,和screen命令都无效
现象发生的先后顺序是:之前没有这种现象,重启linux服务器之后出现了该异常,上面的操作都无效,我现在只能分析可能是Linux出现问题了,并不是shell那里。 代题主求助金鱼哥@IT民工金鱼哥

感谢各位的回复! 问题原因找到了,是 ssh 版本的问题

没问题的服务器 SSH版本(旧的): 7.4p1
有问题的服务器 SSH版本(新的): 8.9p1

解决方案:
在ssh@.service 中 [Service] 节点下,添加 KillMode=process 后重启 sshd 服务

参考连接:
https://www.cnblogs.com/byzgss/p/15573344.html

按照你的解决方案,在命令前增加 nohup 是正确的

如果两台服务器都一样,建议查一下系统日志,看看问题

有没有可能是你这个java进程启动失败,只不过进程延迟一会才结束,并不是会话关闭导致