Saída específica do comando do Solaris ps aux. Por que precisamos dos sinalizadores 'ww' para encontrar correspondências com o grep?

3

Estou começando a usar o Oracle Solaris 11.2 SPARC.

No Linux, posso escrever

ps aux | grep *some_data*

... mas isso não mostra nenhum resultado no Solaris.

Em vez disso, preciso dizer

ps auxww | grep *some_data* 

Eu dei uma olhada em man ps para encontrar mais informações sobre ww

If the option letter is repeated, that is, -ww, this option uses arbitrarily wide output

Por que preciso usar ww para obter algo para grep ?

    
por P.Grjozs 18.07.2016 / 09:34

2 respostas

2

No Linux, o comando ps detecta se a saída é para um terminal ou não. Se for para um terminal, trunca a saída para a largura do terminal. Se não estiver em um terminal, não truncará. Efetivamente, ele se comporta como se ele adicionasse automaticamente as bandeiras ww .

Você pode ver a diferença digitando ps aux e ps aux | cat

No seu exemplo, você está canalizando a saída para grep e, por isso, age como se você tivesse digitado ps auxww | grep .

Para portabilidade, você deve sempre usar os ww flags se quiser ver todos os dados além de (digamos) 80 caracteres.

Nota: você está usando o formulário BSD do comando ps , portanto, no Solaris, certifique-se de chamar o caminho certo!

    
por 18.07.2016 / 13:31
3

Você está usando opções BSD não padrão, seja no Linux ou no Solaris.

A maneira portátil é usar a opção -o para especificar quais campos você deseja exibir, aqui, por exemplo, ps -o pid,args . Observe que, a menos que você esteja usando uma atualização 11.3 recente ou mais recente, a lista de argumentos será limitada a 80 caracteres, a menos que você seja root ou seja o dono do processo.

Como alternativa, você pode usar pgrep -f , que procurará a linha de comando completa.

    
por 18.07.2016 / 10:13

Tags