Comment obtenir la ligne de commande complète utilisée pour lancer un processus

15

Eclipsed a lancé un processus pour moi et j'aimerais voir la ligne de commande complète utilisée.

J'ai essayé "ps auxwww", mais il semble tronquer le chemin à 4096 caractères, y a-t-il un moyen pour que PS arrête de tronquer le chemin, ou d'utiliser un autre outil pour trouver le chemin complet?

Alex Black
la source
Hmm, peut-être que la réponse est de recompiler le noyau? wtf. stackoverflow.com/questions/199130/…
Alex Black
Pour mon cas, qui est une application java, vous pouvez utiliser jconsole pour obtenir le chemin de classe complet auquel il ressemble
Alex Black
Est-il possible de le rediriger vers un fichier et d'obtenir l'intégralité de la ligne de commande?
James
1
Je ne pense pas, il semble que / proc / {PID} / cmdline soit tronqué à 4096 caractères, une limite stricte définie dans le noyau
Alex Black

Réponses:

24
cat /proc/{PID}/cmdline

Où {PID} est l'ID de processus du processus en question.

Barton Chittenden
la source
1
/ proc / * / cmdline ne contient pas de saut de ligne, donc echo $ (</ proc / 7851 / cmdline) donne une sortie plus lisible.
Barton Chittenden
4
Arg. il suffit de lire le lien de débordement de pile qu'Alex Black a publié ... ressemble à proc /.../ cmdline a la même limite de 4096 caractères.
Barton Chittenden
4

L'exemple est d'un javaprocessus, voici un outil qui peut montrer certains détails du processus supplémentaires: jps. Essayez, vous l'avez probablement - cela fait partie deJDK

Elle est similaire à une pscommande de base - mais comprend certains spécificités java. L'utilisation principale est d' identifier les processus java en cours d'exécution, qui sont ensuite inspectés avec d' autres outils d'analyse java, comme 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 extrait de la page de manuel concernant les options:

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
la source
2

canalisez-le dans «moins», vous ne devriez avoir aucun problème à faire défiler vers la gauche et la droite :)

ejes
la source
2
le rediriger vers moins ne résout pas le problème de troncature.
Alex Black
hein, ça a marché pour moi. de toute façon, il semble que l'utilisation de proc (suggéré ci-dessus) ressemble à une excellente solution :)
ejes
Le problème que j'ai rencontré était que proc est tronqué à 4096 caractères, avez-vous trouvé un moyen de dépasser cette limite?
Alex Black