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.