【后端部署】Linux上java -jar运行后,关闭窗口会自动停止运行

今天在Linux服务器上运行了一个jar包。

但是当我关闭窗口后,这个jar包就自动停止运行了。

命令如下:

java -jar -Dfile.encoding=utf-8 /usr/local/lk-webservice/ruoyi-modules-system.jar

在这种命令下,crtl+c可以退出项目运行,或者直接关闭连接窗口,项目也会停止运行;

如果想让这个服务被其它客户端连续访问,就需要把它设置成后台自动运行状态。

命令如下:

nohup java -jar -Dfile.encoding=utf-8 /usr/local/lk-webservice/ruoyi-modules-system.jar &

这个命令会出现以下界面:
在这里插入图片描述
其实,此时,我的jar包已经成功运行了。

这个命令是说 忽略输入信息,并且将输出信息 记录到nohup.out文件中。

这句话之所以出现,是因为我没有指定日志输出的位置,因此它使用了默认配置。

虽然不影响程序运行,但是有时候,你不知道程序究竟有没有运行起来,所以还是应该加上日志输入的目录。

最后改为以下格式,增加了日志输入输出的地方。

nohup java -jar -Dfile.encoding=utf-8 /usr/local/lk-webservice/ruoyi-modules-system.jar >> /usr/local/lk-webservice/out.log 2>&1 &
nohup java -jar -Dfile.encoding=utf-8 /usr/local/lk-webservice/ruoyi-gateway.jar >> /usr/local/lk-webservice/out.log 2>&1 &
nohup java -jar -Dfile.encoding=utf-8 /usr/local/lk-webservice/ruoyi-auth.jar >> /usr/local/lk-webservice/out.log 2>&1 &

备注:当程序运行的次数越来越多,越来越久,日志文件会变得越来越大。

Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。

这一点非常有用,当我们不需要回显程序的信息时,可以将输出重定向到/dev/null。

命令如下:

nohup java -jar -Dfile.encoding=utf-8 /usr/local/lk-webservice/ruoyi-auth.jar >> /dev/null 2>&1 &

启动完成后,可以在当前窗口使用 jobs -l 查看进程。

在这里插入图片描述

相关参考链接:

https://www.cnblogs.com/duzkai/p/12600907.html

https://www.cnblogs.com/baby123/p/6477429.html

https://www.cnblogs.com/klb561/p/10153834.html

https://blog.csdn.net/jiangyu1013/article/details/81476184

https://blog.csdn.net/davidhzq/article/details/102766881

猜你喜欢

转载自blog.csdn.net/single_0910/article/details/121078105