Linux后台发布jar包与退出

本文介绍如何使用nohup命令使Java应用程序在后台持续运行,并将日志输出到指定文件,同时讲解了如何通过端口和进程ID监控及停止应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jar 包的发布

通常这样运行

java -jar xxx.jar

日志会在控制台实时打印

当我们一关闭窗口就会停止运行项目,就需要在后台运行

nohup java -jar xx.jar >log.file 2>&1 &
在 jar包的同级目录就会有日志文件log.file

上面2 和 1的意思如下

o 标准输出(一般指键盘)
2 标准输入(一般是显示屏,是用户终端控制台)
3 标准错误(错误信息输出)

将运行的jar 错误日志信息输出到log.file文件中,然后(>&1) 就是继续输出到标准输出(前面加的&,是为了让系统识别是标准输出),最后一个&,表示在后台运行。

# nohup java -jar babyshark-0.0.1-SNAPSHOT.jar  > log.file  2>&1 &
[1] 26696

26696就表示运行的端口号,

查看端口方式:

netstat -anp可以查看到全部进程信息
在这里插入图片描述

查找jar包进程信息

 #ps -aux | grep swagger-0.0.1-SNAPSHOT.jar
root     26696  2.0  8.1 2548608 152556 pts/1  Sl   14:07   0:12 java -jar swagger-0.0.1-SNAPSHOT.jar
root     27036  0.0  0.0 112708   992 pts/1    R+   14:17   0:00 grep --color=auto swagger-0.0.1-SNAPSHOT.jar

上面 26696就是端口

停止后台程序

kill -9 26696

如果你记得自己jar包的端口也可以按照端口来查找

lsof -i:端口号

如果提示

-bash: lsof: command not found

则需要通过yum来安装

# yum install lsof
Linux系统中后台运行JAR文件是一个常见的需求,尤其是在部署Java应用程序的时候。下面是几种让JAR后台持续运行的方式: ### 使用 nohup 命令 `nohup`(No Hang up)可以忽略挂起信号(SIGHUP),即当用户退出终端之后程序仍然能够继续运行下去。 - 执行命令: ```bash $ nohup java -jar your-application.jar & ``` 这条命令会启动应用并将它放到后台运行;所有的输出将会被记录到当前目录下的 `nohup.out` 文件中除非另有指定输出位置。 如果你不想生成nohup.out日志文件,则可以在命令结尾添加 > /dev/null 2>&1 来将标准输出和错误重定向至空设备。 ```bash $ nohup java -jar your-application.jar >/dev/null 2>&1 & ``` ### 使用 screen 工具 Screen工具允许创建一个持久性的虚拟控制台,在其中你可以安全地关闭物理连接而不会影响正在运行的任务。 首先安装screen(如果尚未安装的话) 对于Debian/Ubuntu发行版来说可以用下面的指令来进行安装: ```bash sudo apt-get install screen ``` 然后按照以下步骤操作即可: 1. 创建一个新的会话并命名:`screen -S myappsession` 2. 启动你的Java服务:`java -jar your-application.jar` 3. 按下 Ctrl+A 然后再按 D 键就可以从这个screen session脱离出来了。此时回到shell界面,并且那个screen窗口还在后台保持活动状态。 想要查看所有已开启sessions列表以及重新连入刚才断开的那个screen,您可以分别用这两个命令:`screen -ls`,`screen -r myappsession`. ### 使用 Systemd (适用于现代 Linux 发行版本) 通过编写systemctl service单元配置文件使得服务开机自启并且稳定可靠。 创建名为your-app.service的服务定义文件放在/etc/systemd/system路径下: 内容示例如下: ```ini [Unit] Description=My Java Application Service [Service] ExecStart=/usr/bin/java -jar /path/to/your-application.jar SuccessExitStatus=143 Restart=on-failure User=nobody # 运行此service的账户名可根据需要更改 WorkingDirectory=/opt/my-java-app/ [Install] WantedBy=multi-user.target ``` 保存修改后的配置文后执行如下命令加载新设置并启用该服务随机器一起启动. ```bash $ sudo systemctl daemon-reload $ sudo systemctl enable your-app.service $ sudo systemctl start your-app.service ``` 以上就是三种常用的方法让你的应用能够在Linux环境下作为守护进程长期稳定工作了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值