วิธีรับบรรทัดคำสั่งของกระบวนการ UNIX


8

เป็นไปได้ไหมที่จะคว้าบรรทัดคำสั่งที่ใช้เรียกกระบวนการบน Mac OS X


1
ps --pid $PID -o args=นั่นคือสิ่งที่ฉันใช้อยู่แล้ว ...
yardena

2
Mac ที่เทียบเท่ากับคำสั่งนั้นคือ:ps -p <pid> -o args=
Nate

1
หาก "-o args =" ตัดทอนผลลัพธ์คุณสามารถลองได้ps -p <pid> -o command=
Jose Alban

คำตอบ:


11

ps axแสดงให้คุณเห็นบรรทัดคำสั่งของกระบวนการทำงานทั้งหมด; คุณสามารถ grep สำหรับ pid ที่คุณต้องการ


@ mark4o หรือเพียงแค่ ps awux | cat เนื่องจาก ps -w จะไม่ จำกัด จำนวนคอลัมน์ที่จะแสดงเมื่อเอาต์พุตไม่ใช่ stdout เช่นเมื่อ piped ไปที่คำสั่งอื่น
jtimberman

1
ทำไมสิ่งนี้ถึงเกิดขึ้นทุกสัปดาห์ "คำเตือน: ไวยากรณ์ ps ไม่ดีอาจเป็นของปลอม '-' ดูprocps.sf.net/faq.html " และ "โปรดทราบว่า" ps -aux "นั้นแตกต่างจาก" ps aux "มาตรฐาน POSIX และ UNIX นั้นต้องใช้" ps -aux "พิมพ์กระบวนการทั้งหมดที่เป็นเจ้าของโดยผู้ใช้ชื่อ" x "เช่นเดียวกับการพิมพ์กระบวนการทั้งหมดที่จะถูกเลือกโดยตัวเลือก -a หากผู้ใช้ชื่อ" x "ไม่มีอยู่ PS นี้อาจตีความคำสั่งเป็น "ps aux" แทนและพิมพ์คำเตือนลักษณะการทำงานนี้มีไว้เพื่อช่วยในการเปลี่ยนสคริปต์และนิสัยเก่า ๆ มันเปราะบางอาจมีการเปลี่ยนแปลงและไม่ควรพึ่ง "
Hello71

ฉันไม่รู้ Hello71 ฉันแก้ไขคำตอบสองปีสำหรับคุณ
Bkkbrad

4

ทำ:

~$ 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 ระบบเป็นต้น)


2

cat /proc/$PROCESSNUMBER/cmdline | tr '\0' '\n'

แม้ว่าจะเป็นลินุกซ์ที่เฉพาะเจาะจงก็จะได้รับบรรทัดคำสั่งของกระบวนการ$PROCESSNUMBERตรงจากเคอร์เนล ( /proc/$PROCESSNUMBER/cmdlineส่วน) และทำให้สามารถอ่านได้โดยการใส่แต่ละอาร์กิวเมนต์ในบรรทัดที่แยกต่างหากโดยการแปล (พร้อมtr -tokenแทนที่) \ 0 ลงในบรรทัดใหม่ (\ n)

บรรทัดนี้ใช้งานได้เฉพาะเมื่อคุณใส่หมายเลขโปรเซสจริงของกระบวนการที่กำลังทำงานอยู่ (คุณสามารถหาโปรเซสได้ด้วยการรันคำสั่งps -ef) ในส่วน $ PROCESSNUMBER!


3
โปสเตอร์ต้นฉบับขอ Mac OS X (ซึ่งไม่มีในกล่องprocfs)
Andre Holzner

2
หรือxargs -0 < /proc/PID/cmdline
Bash
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.