jar包启动方式

1.直接使用 java -jar xxx.jia启动

[root@VM-4-13-centos home]# java -jar data-transfer-service-in.jar 

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.6.RELEASE)

弊端:1:ctrl+c 退出启动展示页会导致java进程中断。

   2:直接关闭终端会导致java进程中断(启动时和启动完关闭都会导致java进程终端)。

2.使用 java -jar xxx.jar & 启动

[root@VM-4-13-centos home]# java -jar data-transfer-service-in.jar  &

弊端:&的作用是让程序可以以后台模式运行,这样我们使用ctrl+c,或者exit退出启动页面时程序不会被终止,但是关闭终端会导致程序退出,无论是程序启动时直接关闭终端还是程序启动完毕在关闭,都会导致程序异常终止。

3.使用nohup java -jar xxx.jar

该命令相当于第一个场景增加了nohup命令,nohup命令其实就是为了指定输出文件的,用在这里自然就是指定java的输出了。nohup默认会将文件打印在当前文件夹下的nohup.out文件中,若是该文件权限不足,则会将日志输出到$HOME/nohup.out。值得一提的事,这里的输出接收的都是java控制台的输出。同时第一个场景拥有的弊端除了不打印控制台日志他都有。
弊端:

弊端1:exit 退出终端会导致java进程中断。
弊端2:ctrl+c 退出启动展示页会导致java进程中断。
弊端3:直接关闭终端会导致java进程中断(启动时和启动完关闭都会导致java进程终端)。

4.nohup java -jar xxx.jar &

与上个命令相比增加了 &,作用可以类比第二个场景,然后增加了日志输出。那是不是说还是有“关闭终端会导致程序终止”这个弊端呢,答案是否,使用这个命令关闭终端(无论是启动时还是启动完毕)都不会终止程序(原因是因为关闭终端这里其实关闭的是nohup的命令层级,
对java程序已经起不到影响,linux肯定对nohup命令做了特殊处理)。

5.nohup java -jar xxx.jar >> /dev/null &

这个命令是将日志输出到/dev/null,/dev/null是linux系统里的黑洞,其实可以理解为垃圾桶,相当于把日志扔了不要了,其他就没什么区别了。

 

posted @ 2022-12-15 10:44  家乐福的搬砖日常  阅读(136)  评论(0编辑  收藏  举报