2026/1/14 13:46:58
网站建设
项目流程
哪个网站做网上旅社预定,聊城那里做网站,厦门百度推广公司,怎么做网站计划在 Linux 中#xff0c;根据端口查看进程及对应应用的详细信息#xff08;如应用路径、启动命令、配置文件等#xff09;#xff0c;核心流程是#xff1a;先通过端口找到 PID → 再通过 PID 追溯应用详情。以下是分步实操方案#xff0c;包含命令、示例和场景化技巧根据端口查看进程及对应应用的详细信息如应用路径、启动命令、配置文件等核心流程是先通过端口找到 PID → 再通过 PID 追溯应用详情。以下是分步实操方案包含命令、示例和场景化技巧适配运维 / DevOps 日常排查需求一、核心步骤端口 → PID → 应用详情第一步通过端口查询对应的 PID3 种常用方法优先使用ss高效或lsof信息全以下以查询8080 端口为例命令需 root 权限作用示例输出关键信息标注sudo ss -tulnpgrep 8080快速查询监听端口的 PID 和进程名LISTEN 0 128 0.0.0.0:8080 0.0.0.0:* users:((java,pid1234,fd42))→ PID1234进程名 javasudo lsof -i:8080查看端口关联的进程详情COMMAND PID USER FD TYPE DEVICE NAME java 1234 root 42u IPv4 12345 TCP *:8080 (LISTEN)→ PID1234用户 rootsudo netstat -tulnpgrep 8080兼容旧系统需安装 net-toolstcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1234/java→ PID1234进程名 java注意如果端口未监听如处于TIME_WAIT状态lsof需加-Pn参数sudo lsof -i:8080 -Pn第二步通过 PID 查询应用详细信息4 种关键方法拿到 PID 后如上述1234通过以下命令获取应用的路径、启动参数、配置文件等核心信息避免误判同名进程如多个java/python进程。1. 查看应用启动命令及完整参数最常用# 方法 1ps -ef显示用户、PID、父进程、启动命令 sudo ps -ef | grep 1234 # 方法 2ps auxww显示完整命令行无截断 sudo ps auxww | grep 1234示例输出Java 应用root 1234 0.0 5.0 1000000 200000 ? Sl 10:00 0:05 /usr/bin/java -jar /opt/tomcat/webapps/myapp.jar --spring.profiles.activeprod --server.port8080关键信息提取应用类型Java 应用通过java -jar判断应用路径/opt/tomcat/webapps/myapp.jar启动参数--spring.profiles.activeprod生产环境配置端口配置--server.port8080确认端口与查询一致2. 查看应用的安装 / 运行路径# 方法 1pwdx直接显示进程的工作目录 sudo pwdx 1234 # 输出1234: /opt/tomcat应用的工作目录 # 方法 2通过 /proc 文件系统底层方式最准确 sudo ls -l /proc/1234/exe # exe 是应用程序的符号链接 # 输出lrwxrwxrwx 1 root root 0 10月 1 10:00 /proc/1234/exe - /usr/bin/java应用执行文件路径 sudo cat /proc/1234/cwd # cwd 是当前工作目录的路径 # 输出/opt/tomcat与 pwdx 结果一致3. 查看应用打开的文件 / 配置排查配置文件位置# 列出进程打开的所有文件包括配置文件、日志文件 sudo lsof -p 1234 | grep -E \.conf|\.properties|\.log示例输出java 1234 root 100r REG 8,1 1024 12345 /opt/tomcat/conf/application-prod.properties配置文件 java 1234 root 101w REG 8,1 4096 67890 /opt/tomcat/logs/myapp.log日志文件4. 查看应用的网络连接确认端口监听详情# 查看进程 1234 的所有网络连接包括客户端连接、其他端口 sudo ss -tulnp | grep 1234 # 或 sudo netstat -anp | grep 1234二、场景化示例实战排查端口占用问题假设场景启动 Nginx 时提示80 端口被占用需找到占用端口的应用并处理。步骤 1查询 80 端口对应的 PIDsudo lsof -i:80输出COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 5678 root 6u IPv4 12345 0t0 TCP *:http (LISTEN) httpd 5679 apache 6u IPv4 12345 0t0 TCP *:http (LISTEN)→ 发现 PID5678/5679 的httpd进程占用 80 端口。步骤 2查询 httpd 应用的详情# 查看启动命令 sudo ps auxww | grep 5678输出root 5678 0.0 2.0 80000 40000 ? Ss 09:00 0:03 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf→ 应用是 Apache HTTP Server配置文件路径etc/httpd/conf/httpd.conf工作目录/var/www/html。步骤 3处理端口冲突可选# 停止 httpd 服务如果不需要 sudo systemctl stop httpd # 或修改 Nginx 端口为 8080避免冲突 sudo sed -i s/listen 80;/listen 8080;/g /etc/nginx/nginx.conf sudo systemctl restart nginx三、常见问题排查1. 端口被占用但查不到 PID原因端口处于TIME_WAIT状态连接断开后临时占用而非LISTEN状态。# 查看端口状态含 TIME_WAIT sudo ss -tuln | grep 8080 # 输出示例TIME_WAIT 状态无 PID TIME-WAIT 0 0 192.168.1.100:8080 192.168.1.200:54321解决无需处理系统会自动释放默认超时 60 秒或调整内核参数缩短超时时间sudo sysctl -w net.ipv4.tcp_fin_timeout30 # 临时生效 echo net.ipv4.tcp_fin_timeout30 /etc/sysctl.conf # 永久生效 sudo sysctl -p2. 多个同名进程如多个 java如何区分通过启动参数和应用路径区分# 查看所有 java 进程的完整启动命令 sudo ps auxww | grep java输出示例root 1234 0.0 5.0 1000000 200000 ? Sl 10:00 0:05 /usr/bin/java -jar /opt/tomcat/myapp.jar # 应用 A root 5678 0.0 4.0 900000 180000 ? Sl 11:00 0:03 /usr/bin/java -jar /opt/jetty/otherapp.jar # 应用 B3. 非 root 用户查不到进程信息原因-p参数需要 root 权限才能获取 PID 和应用信息切换 root 或加sudo即可。四、一键脚本快速查询端口→PID→应用详情将以下脚本保存为port2app.sh直接执行./port2app.sh 端口号即可输出完整信息#!/bin/bash if [ $# -ne 1 ]; then echo 用法$0 端口号 exit 1 fi PORT$1 echo 端口 $PORT 对应的进程及应用信息 echo 1. 端口关联的 PID sudo ss -tulnp | grep -w :$PORT || sudo lsof -i:$PORT | grep -w LISTEN echo -e \n2. 应用详细信息 PID$(sudo ss -tulnp | grep -w :$PORT | awk -F pid {print $2} | awk -F , {print $1} 2/dev/null) if [ -z $PID ]; then PID$(sudo lsof -i:$PORT | grep -w LISTEN | awk {print $2} 2/dev/null) fi if [ -n $PID ]; then echo PID: $PID echo 启动命令 sudo ps auxww | grep -w $PID | grep -v grep echo 工作目录 sudo pwdx $PID 2/dev/null echo 应用路径 sudo ls -l /proc/$PID/exe 2/dev/null else echo 未找到监听端口 $PORT 的进程可能处于 TIME_WAIT 状态 fi使用方法chmod x port2app.sh sudo ./port2app.sh 8080总结核心逻辑端口 → PID → 应用关键命令组合查 PIDsudo ss -tulnp | grep 端口或sudo lsof -i:端口查应用ps auxww | grep PID启动命令、pwdx PID工作目录、ls -l /proc/PID/exe应用路径该流程适用于端口冲突排查、服务异常定位、进程审计等场景完全适配 IT 运维 / DevOps 日常工作需求可直接复制命令执行。