通过Ubuntu下后台运行jar指令,部署springboot项目,同时解决nohup: ignoring input and redirecting stderr to stdout问题

springboot在Linux服务器一般是采用Jar包的形式部署

1、正常在Ubuntu系统下启动jar包的方式:

$ java -jar test.jar

2、但是这样部署,如果通过ssh连接的客户端断开,那么项目也会关闭。而我们希望的是让项目能够一直在后台运行。

那么就需要下面的命令来启动jar包:

$ nohup java -jar test.jar &

nohup指令就是让程序不挂断的在后台持续运行,输出信息默认会输出到nohup.out 文件中

3、如果我们希望把本地开发时输出到console控制台的信息输入到一个txt文本,那么就需要下面的指令:

$ nohup java -jar test.jar >log.txt &

有时输入这个指令会出现以下问题

nohup: ignoring input and redirecting stderr to stdout

这是因为没有写入权限导致的。

这时可以通过Linux的重定向解决这个问题:

$ nohup java -jar test.jar > log.txt 2>&1 &

0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。

4、当项目部署之后,可以通过jobs命令查看后台的程序

$ jobs

同时如果想让某个程序调回前台控制,可以使用fg命令

$ fg + 序号
// 每个后台运行的程序都有一个序号
上一篇:log4j的使用 20210719091111861


下一篇:管道(Pipelines)与 Unix 哲学