如何查看有关给定 PID 的详细信息?

Phi*_*lip 48 command-line process

标题基本上说明了一切。我有一个程序,其中只给了我 PID,仅此而已,我想知道如何获得有关给定进程的更多信息。

Flo*_*sch 62

ps -Flww -p THE_PID
Run Code Online (Sandbox Code Playgroud)

会告诉你一些信息。有关该命令的更多信息,请参见ps 联机帮助页ps。该“标准格式说明”部分解释了不同列的含义。

  • @Tim,来自联机帮助页`-w Wide 输出。使用此选项两次可获得无限宽度。 (6认同)
  • 谢谢。为什么写“ww”而不是只写一个“w”?https://unix.stackexchange.com/questions/446099/what-is-the- Purpose-of-double-w-in-ps-ww (3认同)

pl_*_*ock 16

我不知道你的具体要求是什么。但这可能对您有所帮助。

每个进程都有一个单独的目录,名称为/proc.

ps -ef | grep docker 
root      1700     1  0 Sep20 ?        00:03:04 /usr/bin/docker daemon --raw-logs
Run Code Online (Sandbox Code Playgroud)

在上面的输出 PID 是 1700 。

/proc/1700

cd /proc/1700
Run Code Online (Sandbox Code Playgroud)

并在ls那里做

ls
attr       clear_refs       cpuset   fd       limits     mem         net        oom_score      projid_map  sessionid  stat     task
autogroup  cmdline          cwd      fdinfo   loginuid   mountinfo   ns         oom_score_adj  root        setgroups  statm    timers
auxv       comm             environ  gid_map  map_files  mounts      numa_maps  pagemap        sched       smaps      status   uid_map
cgroup     coredump_filter  exe      io       maps       mountstats  oom_adj    personality    schedstat   stack      syscall  wchan
Run Code Online (Sandbox Code Playgroud)

有许多文件包含有关进程的所有信息。

喜欢:

cat /proc/1700/status

Name:   docker
State:  S (sleeping)
Tgid:   1700
Ngid:   0
Pid:    1700
PPid:   1
TracerPid:  0
Uid:    0   0   0   0
Gid:    0   0   0   0
FDSize: 64
Groups: 0 999 
VmPeak:   527576 kB
VmSize:   527512 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:     46032 kB
VmRSS:     34180 kB
VmData:   449308 kB
VmStk:       136 kB
VmExe:     28324 kB
VmLib:      4236 kB
VmPTE:       296 kB
VmSwap:     5324 kB
Threads:    12
SigQ:   0/63662
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: ffffffffffc1feff
CapInh: 0000000000000000
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
CapBnd: 0000003fffffffff
Seccomp:    0
Cpus_allowed:   f
Cpus_allowed_list:  0-3
Mems_allowed:   00000000,00000001
Mems_allowed_list:  0
voluntary_ctxt_switches:    437726
nonvoluntary_ctxt_switches: 27579
Run Code Online (Sandbox Code Playgroud)

如果您需要基本命令来获取进程信息,那么您可以使用以下命令轻松获取:

man ps
Run Code Online (Sandbox Code Playgroud)


sta*_*tox 6

为了添加到ps答案中,还有一个pidstat命令将显示其他统计信息,例如在用户模式下花费的时间或 CPU 的占用情况。您可以将其用于:

# pidstat -p 51648
Run Code Online (Sandbox Code Playgroud)

您还可以添加-d标志来添加有关 I/O 的详细信息:

# pidstat -p 51648 -d
Run Code Online (Sandbox Code Playgroud)

您还可以将整数作为第二个参数,以使命令每 X 秒刷新一次:

# pidstat -p 51648 3
Run Code Online (Sandbox Code Playgroud)