คุณสามารถดูข้อมูลที่ 5/proc/[pid]/stat
ในการส่งออกของ
$ ps -ejH | grep firefox
3043 2683 2683 ? 00:00:21 firefox
$ < /proc/3043/stat sed -n '$s/.*) [^ ]* [^ ]* \([^ ]*\).*/\1/p'
2683
จากman proc
:
/proc/[pid]/stat
Status information about the process. This is used by ps(1). It is defined in /usr/src/linux/fs/proc/array.c.
The fields, in order, with their proper scanf(3) format specifiers, are:
pid %d The process ID.
comm %s The filename of the executable, in parentheses. This is visible whether or not the executable is swapped out.
state %c One character from the string "RSDZTW" where R is running, S is sleeping in an interruptible wait, D is waiting in
uninterruptible disk sleep, Z is zombie, T is traced or stopped (on a signal), and W is paging.
ppid %d The PID of the parent.
pgrp %d The process group ID of the process.
session %d The session ID of the process.
โปรดทราบว่าคุณไม่สามารถใช้:
awk '{print $5}'
เนื่องจากไฟล์นั้นไม่ใช่รายการที่คั่นด้วยช่องว่าง ฟิลด์ที่สอง (ชื่อกระบวนการอาจมีช่องว่างหรือแม้กระทั่งอักขระบรรทัดใหม่) ตัวอย่างเช่นเธรดส่วนใหญ่firefox
มักมีอักขระเว้นวรรคในชื่อ
ดังนั้นคุณต้องพิมพ์ฟิลด์ที่ 3 หลังจากมี)
อักขระตัวสุดท้ายอยู่ในนั้น
awk '{print $5}'
ไม่รับประกันว่าจะได้คำตอบที่ถูกต้องเนื่องจากชื่อกระบวนการ (ฟิลด์ที่สอง) อาจมีช่องว่างหรืออักขระขึ้นบรรทัดใหม่