【前言】

一般正常启动一个Jar包程序,除了需要安装运行环境JDK外,还要使用指令来执行。

我们以前在开始学习Java的时候,大家应该都知道是用 java -jar xxx.jar 来启动Jar包程序。

 

【Jar包启动方式】

(1)正常启动Jar包:

java -jar xxx.jar

 这条指令虽然可以启动Jar包项目,但是随着终端命令界面的关闭,则项目的进程也将被终止。

我们一个项目既然放在了服务器上,肯定是需要24小时能够访问的。当然,你的终端也不会一直24小时的开着。

那怎么办呢?你可以使用下面这条命令来启动你的Jar程序,这样就算是终端被关闭,你的项目也不会被终止,除非服务器宕机。

(2)启动Jar包,并且能够在后台一直运行:

nohup java -jar xxx.jar &

上面这条启动命令中,有一个nohup指令,尾巴还有一个&,这俩到底是什么意思呢?

这是前两日一个朋友问到了我这个问题,作为经常在使用的命令却不知道具体含义,着实难免有点尴尬,经过昨天查阅了相关资料,今儿自己总结如下,若有不对之处,还希望各路大神指正。

 

【nohup指令】

(1)下面是由百度百科提供的定义:具体查看点这里

nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

 

(2)看到上面这个解释确实比较书面。

(2.1)nohup 其实就是 no hang up(不挂断) 的缩写。

(2.2)nohup执行作业后,用户根目录下会有一个 nohup.out 的文件来存放相关作业的输出(即项目报错与日志)。

比如我的个人网站启动后,就有这个文件。

nohup java 启动不了 nohup 启动jar包_服务器

 

(3)nohup 和 & 的区别

nohup

&

所以我们在项目上线,为了确保项目运行不受操作影响,需要同时免疫两个信号的干扰,即nohup和&同时使用。

,项目上线启动命令为:

nohup java 启动不了 nohup 启动jar包_jar_02

 

参考资料:

(1)百度百科:nohup

(2)一分钟了解nohup和&的功效