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.
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.
Câu trả lời:
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, pgrep
bạ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
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
Nó CMD
sẽ 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.
lsof -p $PID
sẽ là một khởi đầu tốt$PID
cũ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/
.