วิธีรับบรรทัดคำสั่งแบบเต็มใช้เพื่อเรียกใช้กระบวนการ


15

บดบังเปิดตัวกระบวนการสำหรับฉันและฉันต้องการที่จะเห็นบรรทัดคำสั่งเต็มรูปแบบที่ใช้

ฉันลอง "ps auxwww" แต่ดูเหมือนจะตัดทอนเส้นทางไปที่ 4096 ตัวอักษรมีวิธีใดที่จะให้ PS หยุดตัดทอนเส้นทางหรือใช้เครื่องมืออื่นเพื่อค้นหาเส้นทางแบบเต็ม?


อืมบางทีคำตอบคือการคอมไพล์เคอร์เนลอีกครั้ง? WTF stackoverflow.com/questions/199130/…
Alex Black

สำหรับกรณีของฉันซึ่งเป็นแอป java คุณสามารถใช้ jconsole เพื่อให้ได้ classpath แบบเต็ม
Alex Black

เป็นไปได้หรือไม่ที่จะเปลี่ยนเส้นทางไปยังไฟล์และรับบรรทัดคำสั่งทั้งหมด?
James

1
ฉันไม่คิดอย่างนั้นดูเหมือนว่า / proc / {PID} / cmdline จะถูกตัดทอนที่ 4096 ตัวอักษรซึ่งเป็นขีด จำกัด ที่ยากในเคอร์เนล
Alex Black

คำตอบ:


24
cat /proc/{PID}/cmdline

โดยที่ {PID} คือ ID กระบวนการของกระบวนการที่เป็นปัญหา


1
/ proc / * / cmdline ไม่มีการขึ้นบรรทัดใหม่ดังนั้น echo $ (</ proc / 7851 / cmdline) จึงให้เอาต์พุตที่ชัดเจนมากขึ้น
Barton Chittenden

4
หาเรื่อง เพียงแค่อ่านลิงก์ล้นสแต็กที่ Alex Black โพสต์ ... ดูเหมือนว่า proc /.../ cmdline มีความยาวได้ 4096 ตัวอักษร
Barton Chittenden

4

ตัวอย่างที่เป็นเรื่องเกี่ยวกับขั้นตอนต่อไปนี้เป็นเครื่องมือที่สามารถแสดงรายละเอียดขั้นตอนบางอย่างเพิ่มเติม:java jpsแค่ลองคุณอาจมี - เป็นส่วนหนึ่งของJDK

มันคล้ายกับpsคำสั่งพื้นฐาน- แต่จะทำให้ Java-speciffics บางส่วนด้อยกว่า การใช้งานหลักคือการระบุกระบวนการทำงานของจาวาซึ่งจะถูกตรวจสอบกับกระบวนการอื่น ๆเครื่องมือในการวิเคราะห์ 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

สารสกัดจากหน้าคนเกี่ยวกับตัวเลือก:

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
การวางให้น้อยลงจะไม่สามารถแก้ไขปัญหาการตัดทอนได้
Alex Black

นั่นมันใช้งานได้ดีสำหรับฉัน แล้วก็ดูเหมือนว่าใช้ proc (แนะนำข้างต้น) ดูเหมือนจะเป็นทางออกที่ดี :)
EJES

ปัญหาที่ฉันพบคือ proc นั้นถูกตัดเหลือ 4096 ตัวอักษรคุณหาวิธีผ่านขีด จำกัด นั้นหรือไม่?
Alex Black
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.