首页/系统/Linux 运维命令速查/场景:端口占用反查进程
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条
进程与作业69 条
磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

场景:端口占用反查进程

启动服务报 Address already in use:ss -tlnp 找到占端口的 PID,确认身份后决定处理方式;先看是「残留旧进程」还是「正常服务」。

Linux 运维命令速查系统更新于 2026-10-12
场景端口被占用导致服务起不来
组合ss -tlnp + ps + lsof + kill

定位

定位
ss -tlnp | grep ':8080'              # 拿到 pid= 值
ps -p 4321 -o pid,ppid,user,lstart,cmd   # 看身份与启动时间
cat /proc/4321/cwd 2>/dev/null; readlink /proc/4321/exe   # 来源

处理决策

处理决策
# 旧版本残留:优雅停
kill 4321
# 被 systemd/supervisor 托管:走其管理命令
systemctl status $(systemctl list-units --type=service | grep -i app | awk '{print $1}') 2>/dev/null
# 确认无法优雅退出才 -9(最后手段)
kill -9 4321 && ss -tlnp | grep ':8080'
改动前先记录:PID/父进程/启动时间/工作目录/命令行,避免「杀了才发现是核心依赖」。

易错点

  • ss -p 可能看不到进程(权限/内核限制):用 sudo ss 或 lsof -i :8080 交叉验证
  • TCP 端口占用与 UDP 是两套:服务用 UDP 却只查 TCP 会白忙

数据来源与参考

  • man 8 ss(iproute2 手册)
  • man 1 ps

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌