Як отримати повний командний рядок, який використовується для запуску процесу


15

Eclipsed запустив для мене процес, і я хотів би побачити використаний повний командний рядок.

Я спробував "ps auxwww", але, схоже, обрізав шлях до 4096 символів, чи є спосіб отримати PS, щоб припинити обрізати шлях, або використати інший інструмент, щоб знайти повний шлях?


Хм, може відповідь перекомпілювати ядро? wtf. stackoverflow.com/questions/199130/…
Алекс Чорний

У моєму випадку, що є додатком java, ви можете використовувати jconsole, щоб отримати повний класний шлях, який він виглядає
Алекс Чорний

Чи можна перенаправити його на файл і отримати весь командний рядок?
Джеймс

1
Я не думаю, що це виглядає так, що / proc / {PID} / cmdline урізано 4096 символів, жорстке обмеження встановлено в ядрі
Алекс Чорний

Відповіді:


24
cat /proc/{PID}/cmdline

Де {PID} - ідентифікатор процесу, про який йде мова.


1
/ proc / * / cmdline не містить зворотного нового рядка, тому echo $ (</ proc / 7851 / cmdline) дає більш розбірливий вихід.
Barton Chittenden

4
Арг. просто прочитайте посилання на переповнення стека, яку розмістив Алекс Блек ... схоже, що proc /.../ cmdline має ту саму межу символу 4096.
Barton Chittenden

4

Приклад про javaпроцесі, ось інструмент , який може показати деякі додаткові деталі процесу: jps. Просто спробуйте, напевно, це є - це частинаJDK

Це схоже на базову psкоманду - але розуміє деякі специфіки Java. Основне використання - виявлення запущених процесів java, які потім перевіряються за допомогою інших інструментів аналізу java, наприклад 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

Виписка зі сторінки man щодо варіантів:

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

переведіть його в "менше", у вас не повинно виникнути проблем прокрутки вліво і вправо :)


2
з'єднання його в менший не вирішує питання усічення.
Алекс Блек

так, це працювало на мене. у будь-якому випадку, схоже, що використання proc (запропоновано вище) виглядає як чудове рішення :)
ejes

Проблема, якою я потрапила, полягала в тому, що Proc обрізаний 4096 символами, ти знайшов спосіб подолати цю межу?
Алекс Чорний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.