服务器使jar包始终运行,首次启动慢的解决方案

目录

 

一、服务器使jar包始终运行

二、SpringBoot启动jar首次启动慢的解决方案

一、服务器使jar包始终运行
把java程序打成jar包后,在服务器终端执行,如果使用java -jar xxxx.jar执行,

当我们退出终端的时候,xxxx.jar这个程序也会停止。

为了保证程序能够一直运行,应该改为这样运行:nohup java -jar xxx.jar&命令,则程序会在后台一直运行

 原因是:

直接启动jar文件,在当前会话进程中开启一个子进程来运行程序,这个子进程会随着会话进程的结束而结束。这种情况适合短时间测试用。

nohup的意思是不挂断,只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用">filename2>&1"来更改缺省的重定向文件名。这种情况适合在生产环境长时间运行。

nohup启动可以采用如下三种方式:

# 把标准输出重定向到空设备,即只输出错误信息到日志文件
nohup java -jar app.jar >/dev/null 2>log & 
# 把标准输出和标准错误全重定向到空设备,即不输出日志
nohup java -jar app.jar >/dev/null 2>&1 &
# 当前目录下会生成一个nohup.out文件,控制台输入的东西会会被转移到这个文件中
nohup java -jar bbb.jar & 


以符号“>”进行划分,符号左边是输出什么,符号右边是输出到哪

1>​​​​   符号左边是1,标准输出。

2>   符号左边是2,错误输出。

2> &1  错误输出将会和标准输出输出到同一个地方。

> &1   重定向到标准输出的地址,啥意思,就是输出到已指定的标准输出的地址。

> &2   重定向到错误输出的地址,就是输出到已指定的错误输出的地址。

 >/dev/null   这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

 例如:***.jar >nohup.log 2>&1命令,可以拆解成 > nohup.log 和 2> &1两个输出,表示错误输出和标准输出都在nohup.log

(1)nohup java -jar ***.jar >/data/log.log 2>/data/err.log &  

解释:标准日志输出到/data/log.log文件,错误日志输出到/data/err.log文件。

(2)nohup java -jar ***.jar >/data/log.log 2>&1 &  

解释:标准日志输出到/data/log.log文件,错误日志重定向也输出到/data/log.log文件。

(3)nohup java -jar ***.jar >/dev/null 2>/data/err.log &  

解释:标准日志输出到/dev/null,也就是不输出标准日志,错误日志输出到/data/err.log文件。

 

nohup java -jar bbb.jar &:

当前目录下会生成一个nohup.out文件,控制台输入的东西会会被转移到这个文件中。最后通过exit退出终端窗口。

二、SpringBoot启动jar首次启动慢的解决方案
解决办法 编辑 /usr/java/jdk/jdk1.8.0_211/jre/lib/security/下的java.security 文件
securerandom.source=file:/dev/random
改为
securerandom.source=file:/dev/./random
这样就是一个非租塞
————————————————
版权声明:本文为CSDN博主「l去留无心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41937388/article/details/106933141

你可能感兴趣的:(java)