插件窝 干货文章 linux查看进程是哪个程序的

linux查看进程是哪个程序的

进程 bash PID 程序 953    来源:    2025-04-05

在Linux中查看某个进程对应的程序来源,可以通过以下几种方法:


1. 使用 ps 命令

ps -p <PID> -o comm=
  • 作用:直接显示进程对应的程序名(二进制文件名)。
  • 示例bash ps -p 1234 -o comm=
    • 输出可能是 nginxpython 等程序名。

补充:查看进程的完整路径:

ps -p <PID> -o cmd=

2. 使用 pwdx 命令(工作目录)

pwdx <PID>
  • 作用:显示进程的工作目录,结合路径可推测程序来源。
  • 示例bash pwdx 1234
    • 输出类似 /usr/bin/,结合程序名可定位路径。

3. 使用 lsof 命令(打开的文件)

lsof -p <PID> | grep "txt"
  • 作用:列出进程打开的文件,过滤出二进制程序(txt类型)。
  • 示例bash lsof -p 1234 | grep "txt"
    • 输出类似 /usr/sbin/nginx,即程序路径。

4. 通过 /proc 文件系统

ls -l /proc/<PID>/exe
  • 作用:直接查看进程的二进制文件符号链接(最准确)。
  • 示例bash ls -l /proc/1234/exe
    • 输出类似 /usr/bin/python3 -> /usr/bin/python3.8

补充:查看进程的启动命令:

cat /proc/<PID>/cmdline

5. 使用 tophtop 交互式工具

  • top:运行后按 c 键显示完整命令。
  • htop:直接显示程序路径(需安装)。

6. 查找未知进程的归属包(适用于包管理器安装的程序)

dpkg -S $(readlink /proc/<PID>/exe)   # Debian/Ubuntu
rpm -qf $(readlink /proc/<PID>/exe)   # RHEL/CentOS
  • 作用:通过包管理器反向查询进程所属的安装包。

总结:

  • 最快方法ps -p <PID> -o comm=ls -l /proc/<PID>/exe
  • 需详细信息lsof -p <PID>/proc/<PID>/cmdline
  • 交互式工具htop

根据需求选择合适的方式即可精准定位进程对应的程序!