Předpokládám, že hledáte argument -o:
-o formát:
user-defined format.format je jediný argument ve formě seznamu odděleného prázdnou nebo čárkou, který nabízí možnost specifikovat jednotlivé výstupní sloupce. Rozpoznaná klíčová slova jsou popsána níže v části SPECIFIKACE STANDARDNÍCH FORMÁTŮ. Záhlaví lze podle potřeby přejmenovat (ps -o pid,ruser=RealUser -o comm=Příkaz). Pokud jsou všechna záhlaví sloupců prázdná (ps -o pid=-o comm=), řádek záhlaví se nevypíše. Šířka sloupce se podle potřeby zvětší u širokých záhlaví; to může být použito k rozšíření sloupců, jako je WCHAN(ps -o pid,wchan=ŠIROKÝ-WCHAN-SLOUPEK -o comm). Explicitní řízení šířky (ps opid,wchan:42,cmd) je také nabízeno. Chování ps -o pid=X,comm=Y se liší podle osobnosti; výstup může být jeden sloupec s názvem "X,comm=Y" nebo dva sloupce s názvem "X" a "Y". V případě pochybností použijte více možností. Použijte proměnnou prostředí PS_FORMAT k zadání výchozího nastavení podle potřeby; DefSysV a DefBSD jsou makra, která lze použít k výběru výchozích sloupců UNIX nebo BSD.
Takže požadovaný příkaz by byl (Ubuntu):
ps -o uid,pid,cmd -ef|grep python
pod OpenSolaris je příkaz:
ps -o ruser,pid,comm -ef|grep python
Nejjednodušší by asi bylo:
$ ps o uid=,pid=,cmd= -C python
1000 26126 python
Tímto způsobem získáte vše přímo z ps
a nemusíte nic analyzovat.
Z ps
manuálová stránka:
-o formát
Uživatelsky definovaný formát. format je jeden argument ve formě seznamu odděleného prázdnými znaky nebo čárkami, který nabízí způsob, jak určit jednotlivé výstupní sloupce. [...] Záhlaví lze podle potřeby přejmenovat (ps -o pid,ruser=RealUser -o comm=Command). Pokud jsou všechna záhlaví sloupců prázdná (ps -o pid=-o comm=), nebude řádek záhlaví vypsán.
-C cmdlist
Select by command name. This selects the processes whose executable
name is given in cmdlist.
-C
volba bude fungovat, pokud používáte python
interaktivně, ne pokud python spouští skript. V takovém případě byste měli použít -C scriptname.py
místo toho.
ps -eo user,pid,cmd | grep [p]ython
Příklad:
$ ps -eo user,pid,cmd | grep [p]ython
root 1056 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root 1735 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
user 16613 /usr/bin/python3 /usr/share/system-config-printer/applet.py
Vysvětlení:
-e
všechny procesy-o
uživatelsky definovaný formátuser,pid,cmd
Zobrazit uživatele, ID procesu, sloupce příkazů
Poznámka: pokud používáte -f
s -o
jak jiní navrhli, můžete dostat chyby. Je to proto, že oba tyto parametry řídí výstupní formát a měl by být použit pouze jeden z nich:
$ ps --help | grep -A 2 "output format"
*********** output format **********
-o,o user-defined -f full
-j,j job control s signal