部署spring boot 到linux上,用命令java -jar **.jar,发现应用自动退出,进程停止了。后来发现要不挂断的执行命令,忽略所有的挂断信号,用以下命令解决
nohup java -jar ./xxxx.jar > ./xxxx.log 2>&1 &
nohup: 不挂断的执行命令,忽略所有的挂断信号。 运行后台命令的最后加& ,如果不指定log文件,在jar目录下会生成一个nohup.out文件,默认的log输出到这里。
这也纠正了我的一个误区, 我一直以为 & 和 nohup是一样的。
nohup 和 &的区别
可以参考这篇文章
简单来说就是:
- 用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行
- &是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出