Come ottenere l'intera riga di comando utilizzata per avviare un processo


15

Eclipsed ha avviato un processo per me e mi piacerebbe vedere l'intera riga di comando utilizzata.

Ho provato "ps auxwww", ma sembra troncare il percorso a 4096 caratteri, c'è un modo per far smettere a PS di troncare il percorso o usare un altro strumento per trovare il percorso completo?


Hmm, forse la risposta è ricompilare il kernel? WTF. stackoverflow.com/questions/199130/…
Alex Black

Per il mio caso, che è un'app java, puoi usare jconsole per ottenere l'intero percorso di classe che sembra
Alex Black

È possibile reindirizzarlo su un file e ottenere l'intera riga di comando?
James

1
Non credo, sembra che / proc / {PID} / cmdline sia troncato a 4096 caratteri, un limite definito nel kernel
Alex Black

Risposte:


24
cat /proc/{PID}/cmdline

Dove {PID} è l'ID del processo in questione.


1
/ proc / * / cmdline non contiene una nuova riga finale, quindi echo $ (</ proc / 7851 / cmdline) fornisce un output più leggibile.
Barton Chittenden,

4
Arg. basta leggere il link di overflow dello stack pubblicato da Alex Black ... sembra che proc /.../ cmdline abbia lo stesso limite di 4096 caratteri.
Barton Chittenden,

4

L'esempio è di circa un javaprocesso, ecco uno strumento che può mostrare alcuni dettagli del processo aggiuntivi: jps. Prova, probabilmente ce l'hai - fa parte diJDK

È simile a un pscomando di base , ma comprende alcune specifiche di Java. L'uso principale è identificare i processi java in esecuzione, che vengono quindi controllati con altri strumenti di analisi java, come 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

Un estratto dalla pagina man riguardante le opzioni:

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

inseriscilo in 'meno' non dovresti avere problemi a scorrere a sinistra ea destra :)


2
collegarlo a meno non risolve il problema di troncamento.
Alex Black

eh, ha funzionato per me. comunque, sembra che usare proc (suggerito sopra) sembri un'ottima soluzione :)
ejes

Il problema che ho riscontrato è che proc è troncato a 4096 caratteri, hai trovato un modo per superare questo limite?
Alex Black
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.