目录
一、服务器使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