จะดูข้อมูลโดยละเอียดเกี่ยวกับ PID ที่ระบุได้อย่างไร


23

พาดหัวโดยทั่วไปบอกว่ามันทั้งหมด ฉันมีโปรแกรมที่ฉันได้รับ PID เท่านั้นไม่มีอะไรเพิ่มเติมอีกแล้วและฉันอยากรู้ว่าฉันจะรับข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการที่กำหนดได้อย่างไร


หากคุณกำลังทำงานในหลามคุณอาจต้องการใช้psutilห้องสมุด ทำ: psutil.Process(pid)เพื่อรับวัตถุกระบวนการและจากนั้นใช้ส่วนต่อประสานเพื่อดึงข้อมูลเกี่ยวกับหน่วยความจำ / ซีพียู ฯลฯ เป็นต้น
Bakuriu

คำตอบ:


32
ps -Flww -p THE_PID

จะแสดงข้อมูลให้คุณ ดูps manpageสำหรับข้อมูลเพิ่มเติมเกี่ยวกับpsคำสั่ง ส่วน"มาตรฐานรูปแบบตัวระบุ"อธิบายความหมายของคอลัมน์ต่าง ๆ


1
ขอบคุณ ทำไมคุณถึงเขียนwwแทนที่จะเขียนแค่อันเดียวw? unix.stackexchange.com/questions/446099/…
ทิม

12

ฉันไม่รู้ว่าคุณต้องการอะไรแน่นอน แต่สิ่งนี้อาจช่วยคุณได้

มีไดเรกทอรีที่แยกต่างหากสำหรับทุกขั้นตอนที่มีชื่อเป็นจำนวน pid /procคือ

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

ใน PID เอาต์พุตด้านบนคือ 1700

ไปที่ /proc/1700

cd /proc/1700

และทำที่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

มีไฟล์จำนวนมากที่มีข้อมูลเกี่ยวกับกระบวนการทั้งหมด

ชอบ:

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

หากคุณต้องการคำสั่งพื้นฐานเพื่อรับข้อมูลกระบวนการคุณสามารถใช้คำสั่งได้อย่างง่ายดาย:

man ps

3

เพื่อเพิ่มpsคำตอบนอกจากนี้ยังมีpidstatคำสั่งที่จะแสดงสถิติเพิ่มเติมเช่นเวลาที่ใช้ในโหมดผู้ใช้หรืออาชีพของ cpu คุณสามารถใช้กับ:

# pidstat -p 51648

คุณสามารถเพิ่มการ-dตั้งค่าสถานะเพื่อเพิ่มรายละเอียดเกี่ยวกับ I / O:

# pidstat -p 51648 -d

และคุณยังสามารถเป็นจำนวนเต็มเป็นพารามิเตอร์ตัวที่สองเพื่อให้คำสั่งรีเฟรชแต่ละ X วินาที:

# pidstat -p 51648 3
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.