ps ax | grep java sem quebra automática no terminal?

3

Existe uma maneira de executar ps ax | grep java sem que ele seja agrupado no terminal?

    
por Noah Campbell 02.09.2009 / 20:23

3 respostas

4

Para mim, ps não é interrompido, a menos que eu faça:

ps axw

No entanto, você pode definir a largura da tela para truncar a saída (mas não substituirá -w ):

ps ax --width=80

Você também pode usar a opção o (ou -o ou --format ) para incluir apenas as colunas nas quais está interessado, alterar ou eliminar cabeçalhos de colunas e definir a largura de cada coluna individualmente *. Veja man ps e procure por "formato definido pelo usuário" (múltiplas ocorrências).

* definir uma largura de coluna menor que o normal pode alterar a forma como o conteúdo é exibido ou pode não ter um efeito. Por exemplo, "args: 20" não trunca a saída (a menos que não seja a última coluna) e "user: 5" faz com que nomes de usuário com mais de cinco caracteres sejam exibidos como o número UID.

    
por 02.09.2009 / 20:28
1

Eu não posso comentar a resposta de Dennis Williamson (talvez eu tenha poucos pontos para isso); é por isso que estou escrevendo uma nova resposta.

Você pode fazer

ps ax --width=$COLUMNS

para ajustar a largura de saída de acordo com o tamanho atual do terminal. Se seu shell favorito não suporta variável de ambiente COLUMNS, você pode usar stty:

ps ax --width=$(stty -a | grep 'columns [0-9]*;' | sed 's|.*columns \([0-9]*\).*||')

ou mais especificamente (usando um único awk, mas fazendo uma strong suposição sobre o stty -a formato de saída):

ps -axw --width=$(stty -a | awk '/columns/ { printf "%d", $7 }')

Tudo isso é um pouco de digitação, então você pode querer considerar fazer o acima de um alias ou uma função de shell ... :-) O acima talvez precise ser ajustado para o seu sistema operacional (não posso testar agora, não estou usando o OS X, mas o Linux). Eu tenho a seguinte saída para stty -a:

speed 38400 baud; rows 42; columns 178; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
flush = ^O; min = 1; time = 0;
...
    
por 23.09.2009 / 10:33
0

Anexar less -S ao final de qualquer comando desdobraria a saída do comando no terminal Linux.

Exemplo: 1 (seu comando original anexado com less -S )

ps ax | grep java | less -S

16338 ?        Sl   725:52 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.moduleName=/opt/mqm/mq_mount
23137 ?        Sl   498:18 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.moduleName=/opt/mqm/mq_mount
34753 ?        Sl   492:43 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.moduleName=/opt/mqm/mq_mount
39519 ?        Sl   486:47 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.moduleName=/opt/mqm/mq_mount
42071 ?        Sl   494:36 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.moduleName=/opt/mqm/mq_mount

Exemplo: 2 . Melhor ainda, o próximo comando revela o% de consumo de CPU e memória de cada thread Java / ID do processo.

ps aux | egrep 'java|USER' | less -S

USER         PID  %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
Kathpalia   14876  0.0  0.0 103328   864 pts/0    S+   09:31   0:00 egrep java|USER
Kathpalia   16338  2.7  9.4 5932240 953984 ?      Sl   Mar22 726:00 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.
Kathpalia   23137  2.3  5.3 5875976 542084 ?      Sl   Mar25 498:26 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.
Kathpalia   34753  2.3  4.6 5837004 469692 ?      Sl   Mar25 492:51 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.
Kathpalia   39519  2.3  4.2 5824768 429004 ?      Sl   Mar25 486:55 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.
Kathpalia   42071  2.3  4.0 5825876 408612 ?      Sl   Mar25 494:44 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.

É verdade para qualquer processo genérico:

ps aux | egrep 'MyGenericProcess|USER' | less -S

PS : para o Linux 6.x ou superior, grep -E pode ser usado em vez de egrep

    
por 09.04.2018 / 16:01