วิธีตรวจสอบกระบวนการเฉพาะ (สคริปต์ Python) ที่กำลังทำงานอยู่


12

การใช้คำสั่ง 'top' ฉันสามารถเห็นสคริปต์ python 2 ตัวกำลังทำงานอยู่ อย่างไรก็ตามฉันจะตรวจสอบชื่อหรือไดเรกทอรี / สถานที่ได้อย่างไร ฉันต้องการระบุพวกเขาเพื่อให้ฉันสามารถเห็นสิ่งที่ทำงานอย่างถูกต้องและสิ่งที่ไม่


1
lsof -p $PIDจะเป็นการเริ่มต้นที่ดี $PIDยังสามารถเป็นรายการ PID ที่คั่นด้วยจุลภาค /proc/$PID/นอกจากนี้ตันของข้อมูลที่จะได้สัมผัสใน
DopeGhoti

คำตอบ:


19

คุณสามารถรับรายการกระบวนการของหลามได้โดยใช้pgrep:

pgrep -lf python

อย่างไรก็ตามสิ่งนี้ไม่แสดงรายการบรรทัดคำสั่งทั้งหมด หากคุณมีเวอร์ชันล่าสุดpgrepคุณสามารถใช้ -a เพื่อทำสิ่งนี้:

pgrep -af python

มิฉะนั้นคุณสามารถใช้/proc:

IFS=" " read -ra pids < <(pgrep -f python)
for pid in "${pids[@]}"; do
    printf '%d: ' "$pid"
    tr '\0' ' ' < "/proc/$pid/cmdline"
    echo
done

3

ฉันมักจะใช้ps -fA | grep pythonเพื่อดูว่ากระบวนการทำงานอยู่

สิ่งนี้จะให้ผลลัพธ์ดังนี้:

UID     PID   PPID  C STIME TTY      TIME     BIN            CMD
user    3985  3960  0 19:46 pts/4    00:00:07 path/to/python python foo.py

CMDจะแสดงสิ่งที่สคริปต์หลามคุณได้ทำงานแม้ว่ามันจะไม่ให้ไดเรกทอรีของสคริปต์

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