เป็นไปได้ไหมที่จะคว้าบรรทัดคำสั่งที่ใช้เรียกกระบวนการบน Mac OS X
ps -p <pid> -o args=
ps -p <pid> -o command=
เป็นไปได้ไหมที่จะคว้าบรรทัดคำสั่งที่ใช้เรียกกระบวนการบน Mac OS X
ps -p <pid> -o args=
ps -p <pid> -o command=
คำตอบ:
ps ax
แสดงให้คุณเห็นบรรทัดคำสั่งของกระบวนการทำงานทั้งหมด; คุณสามารถ grep สำหรับ pid ที่คุณต้องการ
ทำ:
~$ ps ax | grep "ntp"
57 ?? Ss 0:04.66 /usr/sbin/ntpd -c /private/etc/ntp.conf -n
3104 s000 S+ 0:00.00 grep ntp
ทำสิ่งที่คุณต้องการ (เปลี่ยน ntp เป็นโปรแกรมที่คุณสนใจ)? สิ่งนี้มักจะให้อาร์กิวเมนต์บรรทัดคำสั่งของกระบวนการทำงาน (ฉันใช้เพื่อตรวจสอบสิ่งที่ Launchd ใช้เมื่อใช้ daemon ระบบเป็นต้น)
cat /proc/$PROCESSNUMBER/cmdline | tr '\0' '\n'
แม้ว่าจะเป็นลินุกซ์ที่เฉพาะเจาะจงก็จะได้รับบรรทัดคำสั่งของกระบวนการ$PROCESSNUMBER
ตรงจากเคอร์เนล ( /proc/$PROCESSNUMBER/cmdline
ส่วน) และทำให้สามารถอ่านได้โดยการใส่แต่ละอาร์กิวเมนต์ในบรรทัดที่แยกต่างหากโดยการแปล (พร้อมtr -token
แทนที่) \ 0 ลงในบรรทัดใหม่ (\ n)
บรรทัดนี้ใช้งานได้เฉพาะเมื่อคุณใส่หมายเลขโปรเซสจริงของกระบวนการที่กำลังทำงานอยู่ (คุณสามารถหาโปรเซสได้ด้วยการรันคำสั่งps -ef
) ในส่วน $ PROCESSNUMBER!
procfs
)
xargs -0 < /proc/PID/cmdline
ps --pid $PID -o args=
นั่นคือสิ่งที่ฉันใช้อยู่แล้ว ...