GNU/Linux >> Belajar Linux >  >> Linux

menonton output dari ps aux | grep bla di tmux tidak akan berfungsi?

Jalankan

watch "COLUMNS= ps aux | grep TheProcessYouWatch"

Penjelasan:watch menyetel variabel env tambahan tertentu, yaitu COLUMNS dan LINES . Ini dapat dengan mudah diverifikasi dengan membandingkan env | grep COLUMNS dan watch 'env | grep COLUMNS' .

Ketika COLUMNS disetel, ps memotong keluarannya menjadi banyak karakter dalam satu baris, bahkan jika keluaran disalurkan ke grep (atau sesuatu yang lain). (ps , kenapa kamu melakukan ini padaku?). Memaksa COLUMNS menjadi kosong di dalam watch perintahnya cukup untuk membuat ps berfungsi seperti yang diharapkan OP (dan saya).

Btw, untuk menghindari watch dan grep proses menjadi bagian dari keluaran yang Anda pantau, pertimbangkan untuk menambahkan [] seperti ini:

watch "COLUMNS= ps aux | grep [T]heProcessYouWatch"

(Tentu saja, saya sarankan untuk membiasakan diri dengan pgrep juga. Jawaban lain akan sangat membantu dalam hal ini.)


Seperti yang disebutkan dalam edit pertanyaan dan jawaban xzfc, masalahnya tampaknya terkait dengan pembungkus baris tmux. Untuk sesuatu yang lebih dekat dengan pengganti drop-in ps aux | grep [q]uote , jika Anda tidak memerlukan informasi pengguna, coba:

$ pgrep -af [q]uote
392 bash -c sleep 5 && echo quote
399 bash -c sleep 5 && echo second quote

$ watch pgrep -af [q]uote

-a flag membuat output menyertakan argumen baris perintah, sedangkan -f memungkinkan Anda menelusuri argumen baris perintah serta hanya nama proses.


ps adalah utilitas yang menghasilkan keluaran yang dapat dibaca manusia, dan mengandalkan teks yang dapat dibaca manusia adalah ide yang buruk. Anda harus menggunakan pgrep myShittyProcess bukannya ps aux | grep myShittyProcess . pgrep menghasilkan daftar pid yang kosong, dan jika Anda ingin keluaran yang tidak terlalu membosankan, Anda dapat memberikan pgrep output ke ps :

ps -opid,user,args -p `pgrep myShittyProcess`

Untuk menggunakan one-liner itu dengan watch Anda harus menyertakannya dalam ' ' (bukan " " ) untuk mencegah substitusi perintah shell awal:

watch 'ps -opid,user,args -p `pgrep myShittyProcess`'

Linux
  1. Tmux Tidak Sumber .tmux.conf?

  2. Vim Tidak Berjalan Di Dalam Tmux?

  3. Mengapa Grep -o -w Tidak Memberi Saya Output yang Diharapkan Pada Mac Os X?

  1. Linux – Headphone Tidak Berfungsi Linux Mint 18?

  2. Linux – Berhenti Menonton Keluaran Program Tertentu Setelah Menggunakan Perintah Tonton?

  3. Cara memahami keluaran warna

  1. grep:perintah tidak ditemukan

  2. tmux Ctrl+B tidak berfungsi

  3. Pengulangan otomatis tidak berfungsi