TL; DR
ในหนึ่งในความคิดเห็นของคุณคุณระบุ:
สถานการณ์ที่แน่นอนของฉันคือฉันมีเส้นทางไปยังไฟล์ มันถูกล็อคถ้า firefox ทำงานอยู่ ฉันต้องการดูว่าล็อคหรือไม่ที่จะบอกว่า Firefox ทำงานอยู่
คำถามดั้งเดิมของคุณเกี่ยวกับ lockfiles ดูเหมือนจะเป็นทางยาวเมื่อมีวิธีที่ง่ายกว่าในการค้นหาว่า Firefox กำลังทำงานอยู่สำหรับผู้ใช้ที่กำหนดหรือไม่และเพื่อตรวจสอบสถานะกระบวนการ
ตรวจสอบสถานะกระบวนการ
วิธีที่เหมาะสมกว่าในการค้นหา PID ของกระบวนการที่กำหนดคือการใช้pgrepจากแพ็คเกจprocps ตัวอย่างเช่น:
$ pgrep -u $LOGNAME firefox
5671
จากนั้นคุณสามารถตรวจสอบสถานะของ PID ด้วยps :
$ ps 5671
PID TTY STAT TIME COMMAND
5671 ? Sl 105:47 /usr/lib/firefox/firefox
หรือแค่รับสถานะธงโดยไม่ต้อง cruft อื่น ๆ :
$ ps -ho stat $(pgrep -u $LOGNAME firefox)
Sl
หนึ่งในระบบของฉันหนึ่งซับด้านบนอย่างต่อเนื่องใช้เวลาเพียง 1.4 มิลลิวินาทีในการดำเนินการให้เสร็จสมบูรณ์ ไมล์สะสมของคุณอาจแตกต่างกันไป
รหัสสถานะกระบวนการ
ส่วนประมวลผลสถานะของ ps (1) ให้รายละเอียดความหมายของค่าสถานะต่างๆ บน Ubuntu 14.04 หน้าคนพูดว่า:
PROCESS STATE CODES
Here are the different values that the s, stat and state output
specifiers (header "STAT" or "S") will display to describe the state of
a process:
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped, either by a job control signal or because it is
being traced
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z defunct ("zombie") process, terminated but not reaped by
its parent
For BSD formats and when the stat keyword is used, additional
characters may be displayed:
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads
do)
+ is in the foreground process group