Làm thế nào để xem thông tin chi tiết về một PID nhất định?


23

Các tiêu đề về cơ bản nói lên tất cả. Tôi có một chương trình mà tôi chỉ được cung cấp cho PID, thực sự không có gì nữa và tôi muốn biết làm thế nào tôi có thêm thông tin về quy trình đã cho.


Nếu bạn đang làm việc trong python, bạn có thể muốn sử dụng psutilthư viện. Do: psutil.Process(pid)để có được đối tượng tiến trình và sau đó sử dụng giao diện của nó để lấy thông tin về bộ nhớ / cpu, v.v.
Bakuriu

Câu trả lời:



12

Tôi không biết yêu cầu chính xác của bạn là gì. nhưng điều này có thể giúp bạn.

Có thư mục riêng cho mọi quy trình với tên là số pid trong /proc.

ps -ef | grep docker 
root      1700     1  0 Sep20 ?        00:03:04 /usr/bin/docker daemon --raw-logs

Trong đầu ra trên, PID là 1700.

đi đến /proc/1700

cd /proc/1700

và làm 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

có nhiều tập tin có tất cả thông tin về quy trình.

Như:

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

Nếu bạn cần lệnh cơ bản để lấy thông tin quy trình thì bạn có thể dễ dàng sử dụng lệnh:

man ps

3

Để thêm vào pscâu trả lời, đó cũng là pidstatlệnh sẽ hiển thị các số liệu thống kê bổ sung như thời gian ở chế độ người dùng hoặc chiếm dụng cpu. Bạn có thể sử dụng nó với:

# pidstat -p 51648

Bạn cũng có thể thêm -dcờ để thêm chi tiết về I / O:

# pidstat -p 51648 -d

Và bạn cũng có thể là một số nguyên dưới dạng tham số thứ hai để làm cho lệnh làm mới mỗi X giây:

# pidstat -p 51648 3
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.