问题描述
本地打包好Spring Boot的包后,生成了demo.jar,然后把这个demo.jar移动到服务器上,使用java -jar demo.jar运行,可以使用服务器ip+端口+路径进行访问了。但是一旦关闭终端,那么就杀掉了java进程,如何让java进程一直运行在后台呢?
问题解决
可以使用linux 中的nohup命令完成需求。先上结论:
nohup java -jar demo.jar >server.log 2>&1 &
首先,这句话的整体意思是: 用nohup命令,可以不断运行“java -jar demo.jar”,输出的日志都放到server.log文件中。当ssh窗口关闭时,程序仍然运行 。
nohup 解释:英文全称为no hang up (不挂起), 系统后台不断地运行命令,退出终端不会影响程序的运行
2>&1 解释:让标准错误输出2 重定向 到标注输出1中。
- 0 --代表标准输入
- 1 --代表标准输出
- 2 --代表标准错误输出
>server.log 解释: 让标注输出1 重定向 到serve.log中。
& 解释: 让命令在后台执行,终端退出后仍旧执行