ฉันจะดูกระบวนการที่กำลังทำงานอยู่ได้อย่างไร?


21

ฉันใช้ Ubuntu Server 10.10 และฉันต้องการดูว่ากระบวนการใดทำงานอยู่ ฉันรู้ว่า PostgreSQL กำลังทำงานบนเครื่องของฉัน แต่ฉันไม่สามารถเห็นมันด้วยคำสั่งtopหรือpsดังนั้นฉันคิดว่าพวกเขาจะไม่แสดงกระบวนการทำงานทั้งหมด มีคำสั่งอื่นที่จะแสดงกระบวนการทำงานทั้งหมดหรือมีพารามิเตอร์อื่น ๆ ที่ฉันสามารถใช้กับtopหรือpsสำหรับสิ่งนี้

คำตอบ:


26

จากpsหน้าคน:

-e เลือกกระบวนการทั้งหมด เหมือนกันกับ -A

ดังนั้นps -eจะแสดงกระบวนการทั้งหมด ตัวเลือกทั่วไปสำหรับ "ให้ฉันทุกอย่าง" คือps -elyหรือps auxอย่างหลังคือสไตล์ BSD บ่อยครั้งที่ผู้คนไปป์เอาท์พุทนี้grepเพื่อค้นหากระบวนการตามคำตอบของ xenoterracide ในการหลีกเลี่ยงการเห็นgrepตัวเองในผลลัพธ์คุณมักจะเห็นสิ่งต่อไปนี้:

 ps -ef | grep [f]oo

โดยที่ foo เป็นชื่อกระบวนการที่คุณกำลังมองหา

อย่างไรก็ตามหากคุณกำลังมองหากระบวนการเฉพาะผมขอแนะนำให้ใช้pgrepคำสั่งหากมี ฉันเชื่อว่ามันมีอยู่ในเซิร์ฟเวอร์ Ubuntu การใช้pgrepหมายถึงคุณหลีกเลี่ยงสภาพการแข่งขันที่กล่าวถึงข้างต้น นอกจากนี้ยังมีคุณสมบัติอื่น ๆ ที่ต้องgrepใช้กลอุบายที่ซับซ้อนมากขึ้นในการทำซ้ำ ไวยากรณ์ง่ายมาก:

pgrep foo

โดยที่ foo เป็นกระบวนการที่คุณกำลังมองหา โดยค่าเริ่มต้นมันจะเพียงแค่ส่งออก ID กระบวนการ (PID) ของกระบวนการถ้ามันพบหนึ่ง ดูman pgrepตัวเลือกการส่งออกอื่น ๆ ฉันพบว่าหน้าต่อไปนี้มีประโยชน์มาก:

http://mywiki.wooledge.org/ProcessManagement


ฉันสงสัยว่ามีผู้ใช้กี่เปอร์เซ็นต์ที่psไม่รู้ว่ามีธง ฉันแค่โยนauxมันลงไปเสมอ ฉันไม่รู้เลยว่าแต่ละธงควบคุมได้อย่างไร
Michael Mrozek

3

คุณเคยลองps aux | grep postgresไหม มันควรจะปรากฏขึ้นหาก postgres กำลังทำงานอยู่ ถ้าไม่ใช่ ... คุณรู้ได้อย่างไรว่า postgres กำลังทำงานอยู่

(หมายเหตุ: เป็นความเข้าใจผิดที่เกิดขึ้นps -auxแต่ไม่ถูกต้อง)


ขอบคุณps auxทำงานได้ดีขึ้นมันแสดงกระบวนการประมาณ 70 กระบวนการในขณะที่psแสดงเพียงสองกระบวนการ ฉันรู้ว่า PostgreSQL ทำงานอยู่ตั้งแต่ฉันเห็นว่ามันเริ่มต้นเมื่อบูทขึ้นและหยุดทำงานเมื่อปิดเครื่อง
Jonas

@ Jonas สคริปต์ init บางตัวเขียนได้ไม่ดี อย่าเชื่อพวกเขาเพียงเพราะพวกเขาพูดว่ามีบางอย่างเริ่มต้นและหยุดแล้ว เพียงคำแนะนำ
xenoterracide

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