Làm cách nào để kiểm tra các quy trình cụ thể (tập lệnh Python) đang chạy?


12

Sử dụng lệnh 'top' Tôi có thể thấy 2 tập lệnh python đang chạy. Tuy nhiên, làm cách nào để kiểm tra tên hoặc thư mục / vị trí của họ? Tôi muốn xác định chúng để tôi có thể thấy những gì đang chạy đúng và những gì không.


1
lsof -p $PIDsẽ là một khởi đầu tốt $PIDcũng có thể là một danh sách được phân tách bằng dấu phẩy. Ngoài ra, hàng tấn dữ liệu sẽ được tiếp xúc /proc/$PID/.
DopeGhoti

Câu trả lời:


18

Bạn có thể lấy danh sách các quy trình python bằng cách sử dụng pgrep:

pgrep -lf python

Điều này, tuy nhiên, không liệt kê toàn bộ dòng lệnh. Nếu bạn có phiên bản gần đây, pgrepbạn có thể sử dụng -a để làm điều này:

pgrep -af python

Nếu không, bạn có thể sử dụng /proc:

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

3

Tôi thường sử dụng ps -fA | grep pythonđể xem những gì quá trình đang chạy.

Điều này sẽ cho bạn kết quả như sau:

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

CMDsẽ cho bạn thấy những kịch bản python nào bạn đang chạy, mặc dù nó sẽ không cung cấp cho bạn thư mục của tập lệnh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.