Hangi belirli işlemlerin (Python komut dosyaları) çalıştığını nasıl kontrol edebilirim?


12

'Top' komutunu kullanarak 2 python betiğinin çalıştığını görebiliyorum. Ancak, adlarını veya dizin / konumlarını nasıl kontrol ederim? Onları tanımlamak istiyorum, böylece neyin düzgün çalıştığını ve neyin çalışmadığını görebiliyorum.


1
lsof -p $PIDiyi bir başlangıç ​​olur. $PIDayrıca virgülle sınırlandırılmış bir PID listesi olabilir. Ayrıca, tonlarca veri açıklanacak /proc/$PID/.
DopeGhoti

Yanıtlar:


19

Aşağıdakileri kullanarak python işlemlerinin bir listesini alabilirsiniz pgrep:

pgrep -lf python

Ancak bu, tüm komut satırını listelemez. Son sürümünüz pgrepvarsa bunu yapmak için -a kullanabilirsiniz:

pgrep -af python

Aksi takdirde şunları kullanabilirsiniz /proc:

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

4

Genellikle ps -fA | grep pythonhangi işlemlerin çalıştığını görmek için kullanırım .

Bu size aşağıdaki gibi sonuçlar verecektir:

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

CMDBu size script dizini vermeyecektir rağmen, çalıştırmakta ne piton komut gösterecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.