ดูรายงานสดสถานะของกระบวนการ


4

ภายใต้ Linux ฉันสามารถใช้ top เพื่อดูรายงานสดว่ากระบวนการใดกำลังทำงานอยู่ ฟิลด์ที่สำคัญที่ฉันใช้คือฟิลด์สถานะกระบวนการซึ่งแสดงว่ากระบวนการกำลังทำงานอยู่ผีดิบนอนหลับ ฯลฯ

ฉันอ่าน manpage ของ Mac OS X แต่ฉันไม่เห็นสถานะของกระบวนการ https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/top.1.html

มีวิธีอื่นในการทำเช่นนี้จากบรรทัดคำสั่งใน OS X หรือไม่? ฉันกำลังดีบักโปรแกรมที่ใช้ fork()ดังนั้นฉันต้องการสิ่งที่แสดงให้ฉันเห็นฟีดสดของกระบวนการที่กำลังดำเนินการอยู่

คำตอบ:


3

ในเวอร์ชั่นของ OS X top ฟิลด์นี้เรียกว่า STATE และจะแสดงสถานะของกระบวนการสำหรับข้อมูลเกี่ยวกับ stuck รัฐดู: https://apple.stackexchange.com/a/58718/292

ps คำสั่งใน OS X ยังสามารถแสดงสถานะกระบวนการ ตัวอย่างเช่น, ps aux รวมถึง STATE สนาม และ PS หน้าคนมีสิ่งนี้จะพูดเกี่ยวกับสนาม:

 state     The state is given by a sequence of characters, for example, ``RWNA''.  The first character indicates the run state of the process:

           I       Marks a process that is idle (sleeping for longer than about 20 seconds).
           R       Marks a runnable process.
           S       Marks a process that is sleeping for less than about 20 seconds.
           T       Marks a stopped process.
           U       Marks a process in uninterruptible wait.
           Z       Marks a dead process (a ``zombie'').

           Additional characters after these, if any, indicate additional state information:

           +       The process is in the foreground process group of its control terminal.
           <       The process has raised CPU scheduling priority.
           >       The process has specified a soft limit on memory requirements and is currently exceeding that limit; such a process is (necessarily) not swapped.
           A       the process has asked for random page replacement (VA_ANOM, from vadvise(2), for example, lisp(1) in a garbage collect).
           E       The process is trying to exit.
           L       The process has pages locked in core (for example, for raw I/O).
           N       The process has reduced CPU scheduling priority (see setpriority(2)).
           S       The process has asked for FIFO page replacement (VA_SEQL, from vadvise(2), for example, a large image processing program using virtual memory to sequentially
                   address voluminous data).
           s       The process is a session leader.
           V       The process is suspended during a vfork(2).
           W       The process is swapped out.
           X       The process is being traced or debugged.

น่าเศร้าแม้แต่กับ top -stats pstateฉันไม่สามารถรับได้ top เพื่อแสดงซอมบี้ ดังนั้นดูเหมือนว่าใช้ ps เป็นหนทาง.
425nesp

0

OS X ยังมี top คำสั่ง เนื่องจาก OS X ใช้ระบบ BSD จึงอาจมีความแตกต่างในการใช้งาน สำหรับข้อมูลเพิ่มเติมโปรดดู man top.

คุณอาจพบว่าง่ายกว่า ps ax | grep 'Z'ตัวอย่างเช่นเพื่อค้นหากระบวนการซอมบี้ top อาจไม่ทำสิ่งที่คุณต้องการอย่างแม่นยำ


1
OP ได้อ่านหน้าคู่มือดูวรรคสอง
Mark

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