在 Linux 中,nohup
命令用于在不挂断终端的情况下运行程序。这对于长时间运行的 Java 程序特别有用。以下是如何使用 nohup
命令运行 Java 程序的步骤:
打开终端。
导航到包含 Java 程序的目录。例如,如果您的 Java 程序位于 /home/user/my-java-app
目录中,请使用以下命令:
cd /home/user/my-java-app
确保您已正确设置 JAVA_HOME
环境变量,并且 java
命令可在终端中使用。您可以通过运行以下命令检查 JAVA_HOME
:
echo $JAVA_HOME
如果未设置 JAVA_HOME
,请根据您的系统和 Java 安装位置进行设置。例如,在某些系统上,您可能需要添加以下行到您的 ~/.bashrc
或 ~/.bash_profile
文件中(请根据您的实际 Java 安装路径进行修改):
export JAVA_HOME=/path/to/your/java
export PATH=$PATH:$JAVA_HOME/bin
然后,运行 source ~/.bashrc
或 source ~/.bash_profile
使更改生效。
使用 nohup
命令运行 Java 程序。假设您的 Java 程序的主类名为 com.example.MyApp
,并且已将其打包为名为 my-app.jar
的 JAR 文件。您可以使用以下命令运行此程序:
nohup java -jar my-app.jar > output.log 2>&1 &
这将在后台运行 Java 程序,并将所有输出(包括标准输出和错误输出)重定向到名为 output.log
的文件。&
符号使程序在后台运行,即使您关闭终端也不会中断。
您可以使用 tail
命令查看 output.log
文件的内容,以监控程序的输出:
tail -f output.log
当您需要停止 Java 程序时,可以在另一个终端窗口中找到其进程 ID(PID),然后使用 kill
命令终止它。首先,使用以下命令找到进程 ID:
ps -ef | grep my-app.jar
在输出中找到 Java 程序的进程 ID(通常位于第二列),然后使用以下命令终止进程:
kill <PID>
将 <PID>
替换为您在上一步中找到的进程 ID。