เราสามารถติดตั้ง coreutils GNUbrew
ผ่าน แต่ไม่มีps
ใน utils เราสามารถใช้ gnu ps
ใน OS X ได้ไหม?
ฉันต้องการใช้ GNU ps
เนื่องจากมีตัวเลือกและคุณสมบัติเพิ่มเติมมากมาย
ps
เพราะมีตัวเลือกและคุณสมบัติมากมาย
เราสามารถติดตั้ง coreutils GNUbrew
ผ่าน แต่ไม่มีps
ใน utils เราสามารถใช้ gnu ps
ใน OS X ได้ไหม?
ฉันต้องการใช้ GNU ps
เนื่องจากมีตัวเลือกและคุณสมบัติเพิ่มเติมมากมาย
ps
เพราะมีตัวเลือกและคุณสมบัติมากมาย
คำตอบ:
ไม่มีโปรแกรม ps แบบพกพา คำสั่ง ps พร้อมใช้งานบน linux คือตามที่ผู้อื่นได้กล่าวถึงจากแพ็คเกจ "procps" เหตุผลที่สิ่งนี้ไม่สามารถย้ายไปยัง OSX ได้เนื่องจากเคอร์เนล Linux และ OSX ไม่ได้เปิดเผยข้อมูลนี้ในลักษณะเดียวกัน Linux ใช้ระบบไฟล์หลอกใน / proc ในขณะที่ OSX ใช้ฟังก์ชั่น sysctl ระบบอื่นอาจใช้กลไกใดก็ได้ แต่ให้ข้อมูลในรูปแบบที่แตกต่างกันหรืออาจต้องการโปรแกรมเช่น ps เพื่ออ่านโดยตรงจากหน่วยความจำของเคอร์เนล
โดยทั่วไปไม่มีมาตรฐานสำหรับวิธีการที่ข้อมูลกระบวนการพร้อมใช้งานสำหรับโปรแกรมเช่น ps และ top ดังนั้นโปรแกรมจะต้องได้รับการออกแบบสำหรับระบบปฏิบัติการเฉพาะ หากไม่มีคุณสมบัติเฉพาะที่ขาดหายไปจาก OSX ps คุณจะต้องค้นหาโปรแกรมอื่นที่สามารถทำได้หรือเขียนด้วยตัวคุณเอง (ดูที่คู่มือ sysctl โดยเฉพาะอย่างยิ่ง KERN_PROC โดยเฉพาะเป็นจุดเริ่มต้น) หรือแก้ไขps ที่มีอยู่ คำสั่งเพื่อเพิ่มคุณสมบัติ
อีกทางหนึ่งหากคุณสามารถได้รับสิ่งที่คุณต้องการโดยการแยกวิเคราะห์ผลลัพธ์ของคำสั่ง ps คุณอาจจะสามารถเขียนโปรแกรมพกพา - เอาต์พุตพร้อม-o
ตัวเลือกนั้นมีความน่าเชื่อถือพอสมควรในทุกแพลตฟอร์มโดยเฉพาะอย่างยิ่งถ้าคุณอ้างถึงมาตรฐาน UNIXสำหรับ ชื่อคอลัมน์ที่จะใช้
/proc
ระบบแฟ้มวิธีเดียวที่ลินุกซ์เคอร์เนลให้ได้รับรายชื่อของกระบวนการหรือยังจะมีการโทรระบบที่แยกต่างหากที่ให้ข้อมูลที่?
ไม่ - เนื่องจากไม่มีอยู่ สำหรับสาเหตุที่ไม่มี builtin ps
ในcoreutils
แพ็คเกจของ GNU ให้ดูคำตอบนี้ในฟอรัม Unix & Linux
สูตรทางเลือกที่ดีที่สุดที่มีให้ผ่าน Homebrew คือpsgrep
:
psgrep เป็นสคริปต์เชลล์ Bash ขนาดเล็กที่ค้นหารายการกระบวนการ (ตามที่ได้รับจากps (1) ) โดยใช้grepยูทิลิตี้ที่ยอดเยี่ยม(1) สำหรับพลังงานของมัน
ที่กล่าวว่าคุณยังคงสามารถใช้งานได้psgrep
ตามที่ OS X ps
ต้องการ ตัวอย่างเช่น:
OPTIONS
-a Search the process list using BSD's "ps aux" format. This option
includes all users' processes in the search.
-b Search the process list using BSD's "ps ux" format (default).
This option only includes the running user's processes.
pgrep
มีให้บริการผ่านทางbrew
ซึ่งใกล้กับ syntactically ps
แต่มีประสิทธิภาพน้อยกว่าpsgrep
:
psgrep (1)มีประโยชน์มากกว่าpgrep (1)เพราะไม่เพียง แต่จะสามารถค้นหารายการกระบวนการและส่งคืน PID ได้ แต่ก็สามารถให้ข้อมูลที่เป็นประโยชน์มากขึ้นเช่น UID, GID, การใช้หน่วยความจำ / CPU, ความเหมาะสมและอื่น ๆ โดย ps
เหมืองเน้นทั้งหมด
pgrep
เป็นส่วนหนึ่งของ OS X เวอร์ชันล่าสุดเช่นกัน
type -a pgrep
pgrep is /usr/local/bin/pgrep
pgrep is /usr/bin/pgrep
proctools
แพคเกจจาก MacPorts หรือ Homebrew ให้pgrep
และpkill
ซึ่งเป็นสิ่งที่ผมเองกำลังมองหาเมื่อฉันมีขึ้นที่นี่
ps
ไม่ได้เป็นส่วนหนึ่งของ coreutils GNU ตามWikpedia รุ่นที่มาพร้อมกับการกระจาย Linux ของฉันน่าจะมาจากprocpsแต่ดูเหมือนว่าไม่มีสูตรสำหรับ homebrew มีสูตรpstree
ที่สามารถให้มุมมองแบบต้นไม้ที่ยอดเยี่ยมแก่คุณและยังhtop
เป็นตัวแสดงกระบวนการที่ดีอีกวิธีหนึ่ง
ps
หรือps -ef
ใน terminal บน OSX หรือไม่ ใช้งานได้กับฉันใน OSX 10.7.5 โดยไม่มีการดัดแปลงบนสองเครื่องที่แตกต่างกัน อยู่ใน / bin / ps