Jak uzyskać pełny wiersz poleceń użyty do uruchomienia procesu


15

Eclipsed uruchomił dla mnie proces i chciałbym zobaczyć pełną linię poleceń.

Próbowałem „ps auxwww”, ale wydaje się, że skraca ścieżkę do 4096 znaków, czy istnieje sposób, aby PS przestał obcinać ścieżkę lub użyć innego narzędzia, aby znaleźć pełną ścieżkę?


Hmm, może odpowiedzią jest rekompilacja jądra? wtf. stackoverflow.com/questions/199130/…
Alex Black

W moim przypadku, który jest aplikacją Java, możesz użyć jconsole, aby uzyskać pełną ścieżkę klasową
Alex Black

Czy można przekierować go do pliku i uzyskać całą linię poleceń?
James

1
Nie sądzę, wygląda na to, że / proc / {PID} / cmdline jest obcięty na 4096 znaków, twardy limit ustawiony w jądrze
Alex Black

Odpowiedzi:


24
cat /proc/{PID}/cmdline

Gdzie {PID} jest identyfikatorem danego procesu.


1
/ proc / * / cmdline nie zawiera końcowego nowego wiersza, więc echo $ (</ proc / 7851 / cmdline) daje bardziej czytelny wynik.
Barton Chittenden

4
Arg. po prostu przeczytaj link przepełnienia stosu, który opublikował Alex Black ... wygląda na to, że proc /.../ cmdline ma ten sam limit 4096 znaków.
Barton Chittenden

4

Przykładem jest o javaprocesie, tutaj jest narzędziem, które może pokazać jakieś dodatkowe szczegóły procesu: jps. Po prostu spróbuj, prawdopodobnie masz go - to częśćJDK

Jest podobny do podstawowego pspolecenia - ale nie docenia niektórych cech java. Głównym zastosowaniem jest identyfikacja działających procesów Java, które są następnie sprawdzane za pomocą innych narzędzi do analizy Java, takich jak 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

Wyciąg ze strony podręcznika na temat opcji:

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

przeciągnij go w „mniej”, nie powinieneś mieć problemów z przewijaniem w lewo i prawo :)


2
przeniesienie go na mniej nie rozwiązuje problemu obcięcia.
Alex Black

huh, to zadziałało dla mnie. tak czy inaczej, wygląda na to, że użycie proc (sugerowane powyżej) wygląda jak świetne rozwiązanie :)
ejes

Problem, który trafiłem, polegał na tym, że proc jest obcięty do 4096 znaków. Czy znalazłeś sposób na przekroczenie tego limitu?
Alex Black
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.