Saya rasa Anda sedang mencari argumen -o:
-o format:
format.format yang ditentukan pengguna adalah argumen tunggal dalam bentuk daftar yang dipisahkan kosong atau dipisahkan koma, yang menawarkan untuk menentukan kolom keluaran individual. Kata kunci yang dikenali dijelaskan di bagian STANDARDFORMAT SPESIFIERS di bawah ini. Header dapat diganti namanya(ps -o pid,ruser=RealUser -o comm=Command) sesuai keinginan. Jika semua header kolom kosong (ps -o pid=-o comm=)maka baris header tidak akan ditampilkan. Lebar kolom akan bertambah sesuai kebutuhan untuk header lebar; ini dapat digunakan untuk memperluas kolom seperti WCHAN(ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm). Kontrol lebar eksplisit (ps opid,wchan:42,cmd) juga ditawarkan. Perilaku ps -o pid=X,comm=Y bervariasi dengan kepribadian; output mungkin satu kolom bernama "X, comm=Y" atau dua kolom bernama "X" dan "Y". Gunakan multiple -ooptions jika ragu. Gunakan variabel lingkungan PS_FORMAT untuk menentukan default seperti yang diinginkan; DefSysV dan DefBSD adalah makro yang dapat digunakan untuk memilih kolom default UNIX atau BSD.
Jadi perintah yang Anda inginkan adalah (Ubuntu):
ps -o uid,pid,cmd -ef|grep python
di bawah OpenSolaris perintahnya adalah:
ps -o ruser,pid,comm -ef|grep python
Yang paling sederhana mungkin adalah:
$ ps o uid=,pid=,cmd= -C python
1000 26126 python
Dengan begitu Anda mendapatkan semuanya langsung dari ps
dan tidak perlu menguraikan apa pun.
Dari ps
halaman manual:
-o format
Format yang ditentukan pengguna. format adalah argumen tunggal dalam bentuk daftar yang dipisahkan kosong atau dipisahkan koma, yang menawarkan cara untuk menentukan kolom keluaran individual. [...] Header dapat diganti namanya (ps -o pid,ruser=RealUser -o comm=Command) sesuai keinginan. Jika semua header kolom kosong (ps -o pid=-o comm=) maka baris header tidak akan ditampilkan.
-C cmdlist
Select by command name. This selects the processes whose executable
name is given in cmdlist.
-C
opsi akan berfungsi jika Anda menjalankan python
secara interaktif, bukan jika python menjalankan skrip. Dalam hal ini Anda harus menggunakan -C scriptname.py
sebagai gantinya.
ps -eo user,pid,cmd | grep [p]ython
Contoh:
$ 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
Penjelasan:
-e
semua proses-o
format yang ditentukan penggunauser,pid,cmd
Tampilkan pengguna, ID proses, kolom perintah
Catatan: jika Anda menggunakan -f
dengan -o
seperti yang disarankan orang lain, Anda mungkin mendapatkan kesalahan. Hal ini karena kedua parameter ini mengontrol format keluaran, dan hanya salah satunya yang harus digunakan:
$ ps --help | grep -A 2 "output format"
*********** output format **********
-o,o user-defined -f full
-j,j job control s signal