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?


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.


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.

[...]

2

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.