So rufen Sie die vollständige Befehlszeile zum Starten eines Prozesses ab

15

Eclipsed hat einen Prozess für mich gestartet, und ich möchte, dass die gesamte Befehlszeile verwendet wird.

Ich habe "ps auxwww" ausprobiert, aber es scheint, als würde der Pfad auf 4096 Zeichen gekürzt. Gibt es eine Möglichkeit, PS dazu zu bringen, den Pfad nicht mehr zu kürzen, oder ein anderes Tool zu verwenden, um den vollständigen Pfad zu finden?

Alex Black
quelle
Hmm, vielleicht ist die Antwort, den Kernel neu zu kompilieren? wtf. stackoverflow.com/questions/199130/…
Alex Black
Für meinen Fall, bei dem es sich um eine Java-App handelt, können Sie jconsole verwenden, um den vollständigen Klassenpfad abzurufen, wie er aussieht
Alex Black
Ist es möglich, es in eine Datei umzuleiten und die gesamte Befehlszeile abzurufen?
James
1
Ich glaube nicht, es sieht so aus, als ob / proc / {PID} / cmdline bei 4096 Zeichen abgeschnitten ist, ein hartes Limit, das im Kernel festgelegt wurde
Alex Black

Antworten:

24
cat /proc/{PID}/cmdline

Dabei ist {PID} die Prozess-ID des betreffenden Prozesses.

Barton Chittenden
quelle
1
/ proc / * / cmdline enthält keine abschließende neue Zeile, daher liefert echo $ (</ proc / 7851 / cmdline) eine besser lesbare Ausgabe.
Barton Chittenden
4
Arg. Lesen Sie einfach den Link zum Stapelüberlauf, den Alex Black gepostet hat. Es sieht so aus, als ob proc /.../ cmdline das gleiche Zeichenlimit von 4096 hat.
Barton Chittenden
4

Das Beispiel ist etwa ein javaProzess, hier ist ein Tool , das einige zusätzliche Prozessdetails zeigen können: jps. Versuchen Sie es einfach, Sie haben es wahrscheinlich - es ist ein Teil vonJDK

Es ähnelt einem einfachen psBefehl, versteht aber einige Java-Besonderheiten. Der Hauptzweck besteht darin , laufende Java-Prozesse zu identifizieren , die dann mit anderen Java-Analysewerkzeugen wie z 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

Ein Auszug aus der Manpage zu den Optionen:

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
quelle
2

Pipe es in "weniger", sollten Sie keine Probleme haben, nach links und rechts zu scrollen :)

ejes
quelle
2
Wenn Sie es in weniger umleiten, wird das Problem der Kürzung nicht gelöst.
Alex Black
huh, das hat bei mir geklappt. auf jeden
fall
Das Problem, das ich getroffen habe, war, dass proc auf 4096 Zeichen gekürzt ist. Haben Sie einen Weg gefunden, dieses Limit zu überschreiten?
Alex Black