关于linux上通过nohup启动程序之后终端关闭从而导致应用关闭的问题

  • A+
所属分类:linux技术
摘要

nohup: 不挂断的运行,并没有后台运行功能,用nohup运行命令可以使命令永久执行下去,和用户终端没有关系,断开SSH不影响运行,&是后台运行。


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 

关于linux上通过nohup启动程序之后终端关闭从而导致应用关闭的问题

3、在配置文件中新增一行数据KillMode=process

vi sshd@.service 

关于linux上通过nohup启动程序之后终端关闭从而导致应用关闭的问题

wq! reboot 

最后确认修改重启服务器即可,这样就不会出现终端断开之后应用被关闭问题