Ketika saya melakukannya ps -ef|grep python
saya mendapatkan yang berikut:
myusername 4492 2994 0 10:32 pts/0 00:00:01 /home/myusername/.virtualenvs/myproject/bin/ipython manage.py runserver
root 6665 1 0 10:42 ? 00:00:00 /usr/bin/python /usr/lib/system-service/system-service-d
myusername 14051 13497 0 11:28 pts/7 00:00:00 grep --color=auto python
Bagaimana saya mendapatkan hanya pengguna yang menjalankan proses, pid dan perintah dijalankan untuk proses seperti pada output berikut?
myusername 4492 /home/myusername/.virtualenvs/myproject/bin/ipython manage.py runserver
root 6665 /usr/bin/python /usr/lib/system-service/system-service-d
ps --fields="user pid command"
Jawaban:
Saya kira Anda mencari argumen -o:
Jadi perintah yang Anda inginkan adalah (Ubuntu):
di bawah OpenSolaris perintahnya adalah:
sumber
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
man ps
. Mungkin sintaksnya sedikit berbeda pada sistem Anda.ps -o uid,pid,cmd -e|grep python
ps -o user,pid,cmd -e|grep '[p]ython'
Yang paling sederhana mungkin adalah:
Dengan begitu Anda mendapatkan semuanya langsung
ps
dan tidak perlu menguraikan apa pun.Dari
ps
halaman manual:The
-C
pilihan akan bekerja jika Anda menjalankanpython
interaktif, tidak jika python berjalan script. Dalam hal ini Anda harus menggunakannya-C scriptname.py
sebagai gantinya.sumber
Versi PS saya berbeda, jadi mungkin memerlukan beberapa penyesuaian, tetapi Anda dapat menggunakan cut (dan mungkin tr tergantung pada apa yang ingin Anda capai) - misalnya sesuatu seperti
Akan memberikan karakter 1-16 dan 50 dan seterusnya dari setiap baris pernyataan ps Anda. (Angka Anda yang sebenarnya mungkin perlu sedikit dipijat).
Cara lain untuk melakukannya (tetapi Anda akan kehilangan format) mungkin
Yang akan mengompresi spasi putih di perintah ps, lalu ambil bidang 1,2 dan 8 dan menampilkannya.
sumber
Contoh:
Penjelasan:
-e
semua proses-o
format yang ditentukan penggunauser,pid,cmd
Tampilkan pengguna, ID proses, kolom perintahCatatan: jika Anda menggunakan
-f
dengan yang-e
disarankan orang lain, Anda mungkin mendapatkan kesalahan. Ini karena kedua parameter ini mengontrol format output, dan hanya satu yang harus digunakan:sumber