GNU/Linux >> Linux Esercitazione >  >> Linux

guardare l'output di ps aux | grep blah in tmux non funzionerà?

Esegui

watch "COLUMNS= ps aux | grep TheProcessYouWatch"

Spiegazione:watch imposta alcune variabili env aggiuntive, vale a dire COLUMNS e LINES . Questo può essere facilmente verificato confrontando env | grep COLUMNS e watch 'env | grep COLUMNS' .

Quando COLUMNS è impostato, ps tronca il suo output a quel numero di caratteri in una riga, anche se l'output viene reindirizzato a grep (o qualsiasi altra cosa). (ps , perché mi fai questo?). Forzare COLUMNS vuoto all'interno di watch il comando di è sufficiente per rendere ps funziona come OP (e io) previsto.

A proposito, per evitare watch e grep processi che fanno parte del tuo output osservato, prendi in considerazione l'aggiunta di [] come questo:

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

(Naturalmente, consiglierei di familiarizzare con pgrep anche. Altre risposte saranno utili in questo.)


Come menzionato nella modifica della domanda e nella risposta di xzfc, il problema sembra essere correlato al ritorno a capo di tmux. Per qualcosa di più vicino a una sostituzione immediata di ps aux | grep [q]uote , se non hai bisogno di informazioni sull'utente, prova:

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

$ watch pgrep -af [q]uote

Il -a flag fa in modo che l'output includa gli argomenti della riga di comando, mentre -f ti permette di cercare gli argomenti della riga di comando così come solo il nome del processo.


ps è un'utilità che produce un output leggibile dall'uomo e fare affidamento sul grepping del testo leggibile dall'uomo è una cattiva idea. Dovresti usare pgrep myShittyProcess invece di ps aux | grep myShittyProcess . pgrep produce un semplice elenco di pid e, se desideri un output meno noioso, puoi passare pgrep l'output di ps :

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

Per usare quella riga con watch dovresti racchiuderlo in ' ' (non " " ) per impedire la sostituzione anticipata dei comandi della shell:

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

Linux
  1. Tmux non sta cercando .tmux.conf?

  2. Vim non funziona all'interno di Tmux?

  3. Perché Grep -o -w non mi dà l'output previsto su Mac Os X?

  4. Linux – Le cuffie non funzionano Linux Mint 18?

  5. Come eseguire il grep con l'output a colori

Linux:smettere di guardare l'output di un particolare programma dopo aver utilizzato il comando Watch?

grep:comando non trovato

Più elegante ps aux | grep -v grep

ps significato uscita aux

guarda l'output di un comando finché non viene osservata una stringa particolare e poi esci

Come eseguire il grep dell'output di ps con le intestazioni