linux 进程的路径(linux查看进程状态)

如何获取linux进程的执行文件路径

ps查看所有符合./cmd的进程,找出其对应的进程号用ll命令: ll进程号如下显示一个示例: [root@Cluster1 proc]# ll 22401 total 0-r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 cmdline-r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 cpu lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 cwd->/home/zhouys/sbs/bin-r-------- 1 zhouys zhouys 0 Dec 11 11:10 environ lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 exe->/home/zhouys/sbs/bin/cbs(deleted) dr-x------ 2 zhouys zhouys 0 Dec 11 11:10 fd-r-------- 1 zhouys zhouys 0 Dec 11 11:10 maps-rw------- 1 zhouys zhouys 0 Dec 11 11:10 mem-r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 mounts lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 root->/-r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 stat-r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 statm-r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 status/proc文件系统下的进程号目录下面的文件镜像了进程的当前运行信息,从中可以看到: cwd符号链接的就是进程22401的运行目录; exe符号连接就是执行程序的绝对路径; cmdline就是程序运行时输入的命令行命令;本例为:./cbs cpu记录了进程可能运行在其上的cpu;显示虚拟的cpu信息 environ记录了进程运行时的环境变量 fd目录下是进程打开或使用的文件的符号连接...通过cwd直接进入进程运行目录,通过查看相关信息就可以定位此目录对应那个端口号,以及定位是那个应用才使用此服务程序。

Linux通过进程ID查找文件路径

Linux系统中,进程管理的一个重要工具是/proc目录,它以虚拟文件系统的形式展示了系统运行时的实时信息,每个运行的进程在其下都有一个以PID命名的目录。要通过进程ID查找文件路径,可以按照以下步骤操作:

步骤1:定位进程PID

首先,使用ps和grep组合命令找到目标进程的PID。例如:

shell

ps aux| grep [目标进程名称]

步骤2:查看进程详细信息

在/proc/[PID]目录下,有众多文件提供进程信息。如查看可执行文件路径,需关注的文件是/proc/[PID]/exe。

步骤3:查看可执行文件路径

使用ls-l命令查看/proc/[PID]/exe文件的链接,链接指向实际的可执行文件路径:

shell

ls-l/proc/[PID]/exe

示例

以查找进程ID为18283的可执行文件路径为例:

shell

ls-l/proc/18283/exe

输出可能显示为:

/proc/18283/exe->/usr/bin/python3

这表明进程18283的可执行文件是/usr/bin/python3。

注意事项

在操作时,请确保权限允许,以免权限不足导致无法访问相关文件。了解这些基本操作后,可以方便地追踪和管理Linux系统中的进程文件路径。

Linux如何根据进程ID查找启动程序的路径

正常运行中的进程树关系如下(为了简化,只显示一部分进程):

$ ps x

PID TTY STAT TIME COMMAND

17279 pts/8 Ss 0:00-bash

18618 pts/8 R+ 0:00 ps xf

18283 pts/8 S 0:00 A

18284 pts/8 S 0:00 A

18321 pts/8 S 0:00 a

18322 pts/8 S 0:00 a

出问题时进程的状态为:

$ ps x

PID TTY STAT TIME COMMAND

17279 pts/8 Ss 0:00-bash

18618 pts/8 R+ 0:00 ps xf

18283 pts/8 Z 0:00 A<defunct>

18284 pts/8 S 0:00 A

18321 pts/8 S 0:00 a

18322 pts/8 S 0:00 a

找到某进程启动路径的方法是:

1.我们可以从ps命令中得到僵死进程的PID,如上例中18283.

2.进入/proc目录下以该PID命名的目录中

3.输入ls-l,结果中 exe链接对应的就是可执行文件的全路经

$ ls-l/proc/18283

总计 0

dr-xr-xr-x 2 qhkf qhkf 0 01-06 11:14 attr

-r-------- 1 qhkf qhkf 0 01-06 11:14 auxv

-r--r--r-- 1 qhkf qhkf 0 01-06 10:38 cmdline

-r--r--r-- 1 qhkf qhkf 0 01-06 11:14 cpuset

lrwxrwxrwx 1 qhkf qhkf 0 01-06 11:14 cwd->/v8t/qhkf/risk_b/kssmdb

-r-------- 1 qhkf qhkf 0 01-06 11:14 environ

lrwxrwxrwx 1 qhkf qhkf 0 01-06 11:14 exe->/v8t/qhkf/risk_b/kssmdb/A

dr-x------ 2 qhkf qhkf 0 01-06 10:38 fd

-rw-r--r-- 1 qhkf qhkf 0 01-06 11:14 loginuid

-r--r--r-- 1 qhkf qhkf 0 01-06 11:14 maps

-rw------- 1 qhkf qhkf 0 01-06 11:14 mem

-r--r--r-- 1 qhkf qhkf 0 01-06 11:14 mounts

-r-------- 1 qhkf qhkf 0 01-06 11:14 mountstats

-r--r--r-- 1 qhkf qhkf 0 01-06 11:14 numa_maps

-rw-r--r-- 1 qhkf qhkf 0 01-06 11:14 oom_adj

-r--r--r-- 1 qhkf qhkf 0 01-06 11:14 oom_score

lrwxrwxrwx 1 qhkf qhkf 0 01-06 11:14 root->/

-r--r--r-- 1 qhkf qhkf 0 01-06 11:14 schedstat

-r-------- 1 qhkf qhkf 0 01-06 11:14 smaps

-r--r--r-- 1 qhkf qhkf 0 01-06 10:38 stat

-r--r--r-- 1 qhkf qhkf 0 01-06 11:14 statm

-r--r--r-- 1 qhkf qhkf 0 01-06 10:38 status

dr-xr-xr-x 6 qhkf qhkf 0 01-06 11:14 task

-r--r--r-- 1 qhkf qhkf 0 01-06 11:14 wchan

剩下的就是排查问题了.OVER.

阅读剩余
THE END