Como obter linha de comando do processo UNIX?

8

É possível pegar a linha de comando que foi usada para invocar um processo no Mac OS X?

    
por user7656 22.08.2009 / 14:51

3 respostas

10

ps ax mostra a linha de comando de todos os processos em execução; você pode pegar o pid desejado.

    
por 22.08.2009 / 14:58
4

faz:

~$ ps ax | grep "ntp"
   57   ??  Ss     0:04.66 /usr/sbin/ntpd -c /private/etc/ntp.conf -n
 3104 s000  S+     0:00.00 grep ntp

faça o que você precisa (mudar o ntp para o programa que você está interessado)? Isso geralmente me dá os argumentos de linha de comando dos processos em execução (eu uso para verificar o que o Launchd usou ao executar um daemon do sistema, por exemplo).

    
por 22.08.2009 / 14:58
2

cat /proc/$PROCESSNUMBER/cmdline | tr '$PROCESSNUMBER' '\n'

Embora seja específico do Linux, ele obtém a linha de comando do processo /proc/$PROCESSNUMBER/cmdline diretamente do kernel (a parte tr -token ) e torna legível colocando cada argumento em uma linha separada traduzindo (com ps -ef replace) os \ 0's em novas linhas (\ n).

Esta linha só funciona se você colocar um processnumber real de um processo em execução (você pode encontrar um executando o comando %code% ) na parte $ PROCESSNUMBER!

    
por 07.12.2011 / 19:04