【后端部署】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