Linux如何查看进程ID?后台运行jar包如何无需记录PID稳定终止进程?
Java 应用进程稳定管理方案
bg命令仅能管理当前终端会话内创建的后台进程,服务器重启后原进程会全部销毁,旧会话也随之失效,因此无法通过bg找到对应进程。
方案1:临时免记PID查找/终止进程(无需修改现有启动逻辑)
- 查找对应java进程PID:
pgrep -f java.jar
该命令会匹配完整命令行中的java.jar关键字,精准返回对应进程ID,避免误匹配其他Java应用 - 一键终止对应进程:
pkill -f java.jar - 操作前校验进程是否正确:
ps aux | grep java.jar
方案2:长期稳定管理方案(推荐,支持开机自启、统一生命周期管理)
使用Linux系统自带的systemd服务管理你的Java应用,完全不需要手动记录PID,服务器重启后可自动拉起应用,更新jar包时仅需执行一条重启命令即可。
配置步骤
- 新建systemd服务配置文件,路径为
/etc/systemd/system/my-java-app.service,填入以下内容(根据你的实际路径、用户修改):
[Unit] Description=My Java Application After=network.target [Service] User=你的运行用户名(建议不使用root) WorkingDirectory=jar包所在目录绝对路径,例如/opt/java-app ExecStart=/usr/bin/java -jar java.jar >> logy.log 2>&1 Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
- 重载systemd配置使服务生效:
sudo systemctl daemon-reload
常用操作命令
- 启动应用:
sudo systemctl start my-java-app - 停止应用:
sudo systemctl stop my-java-app - 重启应用(更新jar包后执行即可):
sudo systemctl restart my-java-app - 查看应用运行状态:
sudo systemctl status my-java-app - 设置开机自动启动:
sudo systemctl enable my-java-app - 实时查看应用日志:
sudo journalctl -u my-java-app -f
内容的提问来源于stack exchange,提问作者sahil
相关产品推荐
相关产品推荐

