nohup指令基本概念:
nohup: 不挂断的运行,并没有后台运行功能,用nohup运行命令可以使命令永久执行下去,和用户终端没有关系,断开SSH不影响运行,&是后台运行。
背景:
在linux运行springboot项目的时候,大多数情况都是通过打包,然后使用nohup命令进行运行jar包从而达到后台运行的效果,sheel脚本一般写法如下:
nohup java -jar XXX.jar -Xmx3550m -Xms3550m -XX:ErrorFile=/home/nurse/hs_err_pid_%p.log > ./logs/nurse.log 2>&1 &
但是最近在公司中部署项目出现了关闭ssh终端就会导致应用关闭退出问题,查找了很久,定位到的原因是为了应付安全检查,对linux的openssh(4.8升级到了8.4版本)进行了升级,从而导致退出终端就退出应用。
解决方案:
1、切换目录值系统配置文件夹下
cd /usr/lib/systemd/system
2、找到关于sshd@.service的配置文件
ll |grep sshd
3、在配置文件中新增一行数据KillMode=process
vi sshd@.service
wq!
reboot
最后确认修改重启服务器即可,这样就不会出现终端断开之后应用被关闭问题