如题,我们把自己的jar包放入服务器后,通常使用java -jar 直接运行,但是这样一旦退出终端连接便会中断项目,因此我们使用下面的方法进行常驻运行jar包。
nohup java -jar authentication-0.0.1-SNAPSHOT.jar >nohup 2>&1 &
我们使用该命令便可以实现在linux中常驻运行java项目,非常便捷~
以下为关于此命令的各项部分解释:
- nohup:“no hang up” 的缩写,用于使命令在后台持续运行,即便用户退出当前终端会话,该进程也不会被终止。例如,若用户使用 SSH 连接服务器启动一个程序,正常情况下用户断开 SSH 连接后程序会停止运行,但使用
nohup
,程序会继续在后台执行。 - java -jar authentication-0.0.1-SNAPSHOT.jar:这是运行 Java 程序的标准命令。其中,
java
是 Java 虚拟机的执行命令,-jar
表示以 JAR(Java Archive)包的形式运行程序,authentication-0.0.1-SNAPSHOT.jar
是具体要运行的 JAR 包文件名。该 JAR 包通常包含了一个 Java 应用程序及其依赖的类库、资源文件等,执行此命令会启动该 Java 应用。 - >nohup:这是输出重定向操作符。它将
java -jar authentication-0.0.1-SNAPSHOT.jar
命令的标准输出(即程序运行过程中通过System.out.println()
等方式输出的内容)重定向到名为nohup
的文件中。如果nohup
文件不存在,系统会自动创建;如果文件已存在,新的输出内容会覆盖原有内容。 - 2>&1:这是将标准错误输出(即程序运行过程中通过
System.err.println()
等方式输出的错误信息)重定向到标准输出。这里的2
代表标准错误输出,1
代表标准输出,&
表示引用。该操作使得程序的错误信息和正常输出都会被记录到nohup
文件中。 - &:这个符号使命令在后台运行。执行该命令后,终端会立即返回提示符,用户可以继续执行其他命令,而无需等待
authentication-0.0.1-SNAPSHOT.jar
程序运行结束 。例如,在启动一个 Web 服务程序时,使用该符号可以让服务在后台持续运行,同时用户可以在同一终端进行其他操作。