您当前的位置:首页 > 互联网教程

日常开发中常用命令之 nohup 命令

发布时间:2025-05-21 03:07:17    发布人:远客网络

日常开发中常用命令之 nohup 命令

一、日常开发中常用命令之 nohup 命令

1、在日常开发工作中,掌握一些常用命令能显著提高我们的工作效率。本文将分享一个实用且重要的命令——nohup命令。

2、在本地开发环境,我们通常使用IDE如IntelliJ IDEA启动项目。然而,当需要将项目部署到服务器进行开发或测试时,我们需通过SSH连接到服务器,并将项目打包后上传。在服务器上,我们可以通过nohup命令启动项目,确保即使退出终端,项目也能继续运行。

3、nohup的全称是"no hang up",它允许我们在系统后台不挂断地运行命令,即使终端会话结束,程序仍会持续执行。默认情况下,nohup命令会在当前目录下生成一个名为nohup.out的文件来记录命令的输出。

4、使用nohup命令的语法格式为:nohup Command [Arg…] [&]。其中,Command是要执行的命令,Arg为命令的参数,&用于将命令放入后台执行,而默认输出则会保存在当前目录下的nohup.out文件中。

5、需要注意的是,如果当前目录下的nohup.out文件不可写,输出将会被重定向到$HOME/nohup.out文件中。在多项目部署情况下,为了方便区分不同项目的日志,我们可以将输出重定向到特定文件,如usercenter.log。

6、例如,使用以下命令启动项目:nohup java-jar usercenter.jar> usercenter.log,命令将标准输出和标准错误输出重定向到usercenter.log文件,确保日志清晰可读。

7、此外,对于那些不关心输出结果或希望清除日志文件的场景,可以将输出重定向到/dev/null,避免占用磁盘空间。

8、掌握nohup命令,能让我们在服务器上执行任务时更加灵活,确保项目即使在非交互式会话中也能持续运行。通过合理配置输出重定向,还能有效管理日志文件,提高后续维护和调试的效率。

二、LINUX 下运行java程序

在 Linux环境下运行 Java程序主要分为两种方式:将项目打包为 war包或 jar包。war包需要部署在 Tomcat服务器上运行,而 jar包则可以直接通过命令行执行。

首先,使用最简单的命令"java-jar xxx.jar"直接运行 jar文件。然而,这种方式的缺点是程序在终止时会立即中断执行。

其次,若使用"java-jar xxx.jar&",程序将后台运行,此时使用 Ctrl+C可以持续运行程序,但关闭终端会中断程序运行。

第三,采用"nohup java-jar xxx.jar&"可确保程序不受终端关闭或 Ctrl+C的影响,运行结果将输出到当前目录的"nohup.out"文件中。

还可以通过"nohup java-jar xxx.jar>java.out&",将日志输出重定向到"java.out"文件,程序运行不受影响。

运行 Java程序后,通过以下方法检查程序运行状态:

1.使用"jobs"命令查看后台任务,输入"jobs"后会显示所有后台运行的任务及其编号。使用"fg+编号"可以将任务调至前台。

2.通过"netstat-nlp| grep:端口号"查看指定端口上的线程 PID。

3.若忘记进程 ID,则使用"ps-ef|grep xxx.jar"或"ps-aux| grep java"查看当前运行的 jar包程序的进程 ID。

4.关闭进程使用"kill-s 9进程ID",以"19992"为例,即为"kill-s 9 19992"。