ฉันจะฆ่ากระบวนการโดยใช้ top ใน OS X ได้อย่างไร


8

ใน Unixe อื่น ๆ ฉันสามารถใช้topแล้วกดKและพิมพ์รหัสกระบวนการ ฉันจะทำสิ่งนั้นใน OS X ได้อย่างไร

ฉันสามารถพิมพ์kill [the_pid]ด้วยตัวเองที่บรรทัดคำสั่งและใช้งานได้ อย่างไรก็ตามฉันสงสัยว่ามีวิธีที่จะเกิดขึ้นในขณะที่อยู่ในtopโปรแกรมหรือไม่


1
ถ้าคุณอยู่ใน nixes * อื่น ๆ htopที่คุณอาจใช้อยู่แล้ว ฉันพบว่ามันให้ข้อมูลและสอดคล้องกันมากขึ้นจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง มันสามารถใช้ได้ผ่าน MacPorts
ephsmith

คำตอบ:


5
# top

กด+shift sสิ่งนี้จะทำให้:

signal [TERM]:

ณ จุดนี้คุณสามารถกด return สำหรับคำขอ 'process polite' ที่สุภาพ ("สัญญาณ 15") ที่จะทำให้กระบวนการล้างไฟล์, ปล่อยหน่วยความจำและอื่น ๆ สำหรับกระบวนการที่ไม่สามารถฆ่าได้ด้วยวิธีนี้คุณสามารถป้อน คำว่า 'ฆ่า' ซึ่งเป็นสัญญาณ "9" returnแล้วกด

ตอนนี้จะแจ้งให้ pid (รหัสกระบวนการ):

pid:

ป้อน pid ของกระบวนการที่คุณต้องการฆ่าและควรดูแลมัน


1
ฉันจะไม่ใช้ SIGKILL เป็นตัวเลือกแรก SIGTERM ที่แนะนำควรทำสำหรับกระบวนการส่วนใหญ่ SIGKILL ยุติกระบวนการโดยไม่มีการขอความช่วยเหลือหรือการล้างข้อมูลใด ๆ ซึ่งอาจทำให้กระบวนการ "zombie" ที่ยังคงมีตัวอธิบายไฟล์แบบเปิดหน่วยความจำที่จัดสรร ฯลฯ
Jan Steinman

ขอบคุณ Jan. อย่างไรก็ตามฉันไม่เห็นการกล่าวถึง SIGKILL ในคำตอบนี้ บอกเป็นนัย ๆ ? นอกจากนี้หาก SIGTERM เป็นตัวเลือกที่ดีกว่าโปรดระบุสิ่งที่จะพิมพ์
Michael Durrant

ตกลงฉันจะอัพเดทด้วยตัวเอง
Michael Durrant

4

จากtopหน้าคน:

  S<signal><pid>
          Send  <sig>  to  <pid>.   <sig> can be specified either as a number or
          as a name (for example, HUP).  The default signal starts out as TERM.
          Each time a signal is  successfully  sent,  the default signal is updated
          to be that signal.  <pid> is a process id.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.