formato longo do comando ps no Solaris

3

Trabalhos com uma longa linha de comando não estão sendo impressos no Solaris:

   bash-3.2$ /usr/ucb/ps auxwww | grep ftf | awk '{print $NF}' | head -5
  /proj/cmp01/app/btws/cfg/btw
  /proj/cmp01/app/btws/cfg/btw
  /proj/cmp01/app/btws/cfg/btw
  /proj/cmp01/app/btws/cfg/btw
  /proj/cmp01/app/btws/cfg/btw

  bash-3.2$ /usr/ucb/ps -alxww | grep -v "alxww" | grep ftf | grep -v grep|head -5
  0 39548   737   693  0  50 20 5112 3952 603110c3e70 S ?        249:55 /usr/bin/bash                  
  /proj/cmp01/app/ftf/bin/ftf.sh -y -c /proj/cmp01/app/btws/cfg/btw
  0 39548   906   871  0  50 20 4568 3488 6034bfbf348 S ?        245:12 /usr/bin/bash   
  /proj/cmp01/app/ftf/bin/ftf.sh -y -c /proj/cmp01/app/btws/cfg/btw
  0 39548  2512  2480  0  50 20 4552 3544 603d5120df8 S ?        134:04 /usr/bin/bash 
  /proj/cmp01/app/ftf/bin/ftf.sh -y -c /proj/cmp01/app/btws/cfg/btw
  0 39548  2523  2496  0  50 20 4728 3688 602fcee1d28 S ?        135:43 /usr/bin/bash 
  /proj/cmp01/app/ftf/bin/ftf.sh -y -c /proj/cmp01/app/btws/cfg/btw
  0 39548  2557  2535  0  50 20 4472 3480 603df1e0838 S ?        133:48 /usr/bin/bash 
  /proj/cmp01/app/ftf/bin/ftf.sh -y -c /proj/cmp01/app/btws/cfg/btw

Ele está cortando parte do arquivo de configuração.

Eu também não posso usar pargs :

   bash-3.2$ for i in '/usr/ucb/ps -alxww | grep -v "alxww" | grep ftf | grep -v gr
   ep| awk '{print $3}'|head -3'; do pargs $i; done 
   pargs: cannot examine 737: permission denied
   pargs: cannot examine 2512: permission denied
   pargs: cannot examine 2523: permission denied
   bash-3.2$ 

Eu verifiquei esta questão , mas não consegui os argumentos completos:

    
por Tingrammer 01.07.2014 / 08:14

1 resposta

2

Eu acredito que você está tornando mais complexo do que precisa ser. Não há necessidade de awk ou versão antiga do comando ps .

Tente isto:

for x in 'ps -ed -o pid='; do echo -n "$x " ; pargs -l $x; done

Ou quando bem impresso:

for x in 'ps -ed -o pid='; do 
   echo -n "$x " 
   pargs -l $x 2>/dev/null # don't want to see err msg for procs that no longer exist
done

Isso produzirá uma saída com o PID e todos os argumentos do cmd em uma linha, independentemente de quanto tempo. Então você pode percorrer o caminho através dessa saída, se quiser.

Lembre-se que o comando pargs precisa examinar o processo e você pode não ter permissão para fazer isso em todos os processos, a menos que você seja root ou possua privs equivalentes.

    
por 01.07.2014 / 23:36