Como obter a linha de comando completa usada para iniciar um processo

15

A Eclipsed lançou um processo para mim e eu gostaria de ver a linha de comando completa usada.

Eu tentei "ps auxwww", mas parece truncar o caminho para 4096 caracteres, existe alguma maneira de o PS parar de truncar o caminho ou usar outra ferramenta para encontrar o caminho completo?

Alex Black
fonte
Hmm, talvez a resposta seja recompilar o kernel? wtf. stackoverflow.com/questions/199130/…
Alex Black
Para o meu caso, que é um aplicativo java, você pode usar jconsole para obter o caminho de classe completo parece que
Alex Preto
É possível redirecioná-lo para um arquivo e obter toda a linha de comando?
James
11
Eu não penso assim, parece que / proc / {PID} / cmdline é truncado em 4096 caracteres, um conjunto rígido limite no kernel
Alex Preto

Respostas:

24
cat /proc/{PID}/cmdline

Onde {PID} é o ID do processo em questão.

Barton Chittenden
fonte
11
/ proc / * / cmdline não contém uma nova linha à direita; portanto, echo $ (</ proc / 7851 / cmdline) oferece uma saída mais legível.
Barton Chittenden
4
Arg. basta ler o link de estouro de pilha que Alex Black postou ... parece que proc /.../ cmdline tem o mesmo limite de 4096 caracteres.
Barton Chittenden
4

O exemplo é sobre um javaprocesso, aqui está uma ferramenta que pode mostrar alguns detalhes adicionais do processo: jps. Apenas tente, você provavelmente o tem - faz parte deJDK

É semelhante a um pscomando básico - mas entende alguns Java-Speciffics. O uso principal é identificar processos java em execução, que são inspecionados com outras ferramentas de análise java, como jstack.

$ jps -ml  
31302 com.intellij.rt.execution.application.AppMain com.example.Foo some.properties
26590 com.intellij.idea.Main nosplash
31597 sun.tools.jps.Jps -ml

Uma extração da página de manual referente às opções:

jps - Java Virtual Machine Process Status Tool

jps [ options ] [ hostid ]

[...]

-q  Suppress  the  output of the class name, JAR file name, and argu‐
    ments passed to the main method, producing only a list  of  local
    VM identifiers.

-m  Output the arguments passed to the main method. The output may be
    null for embedded JVMs.

-l  Output the full package name for the application's main class  or
    the full path name to the application's JAR file.

-v  Output the arguments passed to the JVM.

-V  Output  the  arguments  passed  to the JVM through the flags file
    (the   .hotspotrc   file   or   the   file   specified   by   the
    -XX:Flags=<filename> argument).

-Joption
    Pass  option  to  the  java  launcher called by jps. For example,
    -J-Xms48m sets the startup memory to 48 megabytes. It is a common
    convention  for -J to pass options to the underlying VM executing
    applications written in Java.

[...]
Volker Siegel
fonte
2

canalizá-lo para 'menos', você não terá problemas para rolar para a esquerda e para a direita :)

ejes
fonte
2
canalizá-lo para menos não resolve o problema de truncamento.
Alex Black #
Isso funcionou para mim. de qualquer maneira, parece que usar proc (sugerido acima) parece ser uma ótima solução :) #
3100
O problema que encontrei foi que proc é truncado para 4096 caracteres, você encontrou uma maneira de ultrapassar esse limite?
Alex Black