Bagaimana cara memeriksa proses tertentu (skrip Python) yang sedang berjalan?

12

Menggunakan perintah 'top' saya bisa melihat 2 skrip python sedang berjalan. Namun, bagaimana cara memeriksa nama atau direktori / lokasi mereka? Saya ingin mengidentifikasi mereka sehingga saya bisa melihat apa yang berjalan dengan baik dan apa yang tidak.

Pengguna
sumber
1
lsof -p $PIDakan menjadi awal yang baik. $PIDjuga bisa menjadi daftar PID yang dibatasi koma. Juga, banyak data akan diekspos di /proc/$PID/.
DopeGhoti

Jawaban:

18

Anda bisa mendapatkan daftar proses python menggunakan pgrep:

pgrep -lf python

Namun, ini tidak mencantumkan seluruh baris perintah. Jika Anda memiliki versi terbaru, pgrepAnda dapat menggunakan -a untuk melakukan ini:

pgrep -af python

Jika tidak, Anda dapat menggunakan /proc:

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

Saya biasanya menggunakan ps -fA | grep pythonuntuk melihat proses apa yang sedang berjalan.

Ini akan memberi Anda hasil seperti berikut:

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

The CMDakan menunjukkan apa script python yang telah berjalan, meskipun tidak akan memberikan direktori script.

blaklaybul
sumber