查找Mina进程的PID(进程ID)
方法1:使用 ps
和 grep
组合
ps -ef | grep mina
或精准匹配(避免误杀):
ps -ef | grep '[m]ina' # 方括号避免匹配到grep自身
输出示例:
ubuntu 12345 6789 0 10:30 ? 00:01:23 java -jar mina-server.jar
关键信息:
12345
为进程PID(示例)mina-server.jar
为进程特征名(根据实际应用调整)
方法2:通过端口号查找(若已知服务端口)
sudo lsof -i :<端口号> # 如 mina 默认端口 9123
输出中第二列为PID。
终止进程的4种方法
✅ 方法1:kill
命令(推荐)
kill -15 <PID> # 发送SIGTERM信号,允许进程安全退出
- 适用场景:正常关闭,触发资源清理(如保存数据、释放连接)。
- 等待时间:若30秒未退出,需强制终止。
⚠️ 方法2:强制终止(kill -9
)
kill -9 <PID> # 发送SIGKILL信号,立即强制结束
- 风险:可能导致数据丢失或资源未释放(仅在前一步失效时使用)。
方法3:pkill
按名称终止
pkill -f 'mina-server.jar' # 匹配完整进程名
- 注意:确保名称唯一性,避免误杀其他Java进程。
方法4:终止整个Java进程组
kill -15 -<进程组ID> # 通过"ps -efj"查看组ID(PGID)
- 适用场景:Mina作为父进程启动多子进程时。
验证进程是否终止
ps -p <PID> # 检查该PID是否存在 或 sudo ss -tulnp | grep <端口号> # 确认端口释放
若输出为空,则进程已结束。
注意事项
- 权限问题:
- 普通用户只能终止自己的进程,系统级服务需
sudo
提权。
- 普通用户只能终止自己的进程,系统级服务需
- 数据安全:
- 优先使用
kill -15
,避免kill -9
导致数据损坏。
- 优先使用
- 进程残留:
- 若
kill
后仍存在僵尸进程,重启系统清理。
- 若
- 服务托管场景:
- 若通过
systemd
托管(如mina.service
),使用服务命令更安全:sudo systemctl stop mina # 停止服务 sudo systemctl restart mina # 重启
- 若通过
总结步骤
- 通过
ps -ef | grep mina
定位PID。 - 执行
kill -15 <PID>
安全终止。 - 若未响应,使用
kill -9 <PID>
强制结束。 - 验证进程状态和端口释放。
引用说明:本文方法基于Linux标准进程管理工具(
ps
,kill
,lsof
),参考Linux手册页(man kill
)及Mina框架的进程运行特性,操作时请确保符合您的系统环境。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6383.html