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?


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.


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.

[...]

2

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.