Cara mendapatkan baris perintah penuh yang digunakan untuk meluncurkan suatu proses

15

Eclipsed meluncurkan proses untuk saya, dan saya ingin melihat baris perintah penuh digunakan.

Saya mencoba "ps auxwww", tetapi tampaknya memotong jalur ke 4096 karakter, apakah ada cara untuk membuat PS berhenti memotong jalur, atau menggunakan alat lain untuk menemukan path lengkap?

Alex Black
sumber
Hmm, mungkin jawabannya adalah mengkompilasi ulang kernel? wtf. stackoverflow.com/questions/199130/…
Alex Black
Untuk kasus saya, yang merupakan aplikasi java, Anda dapat menggunakan jconsole untuk mendapatkan classpath penuh seperti
Alex Black
Apakah mungkin untuk mengarahkan ulang ke file dan mendapatkan seluruh baris perintah?
James
1
Saya tidak berpikir begitu, sepertinya / proc / {PID} / cmdline terpotong pada 4096 karakter, batas keras yang ditentukan di kernel
Alex Black

Jawaban:

24
cat /proc/{PID}/cmdline

Di mana {PID} adalah ID proses dari proses yang dimaksud.

Barton Chittenden
sumber
1
/ proc / * / cmdline tidak mengandung trailing newline, jadi echo $ (</ proc / 7851 / cmdline) memberikan output yang lebih terbaca.
Barton Chittenden
4
Arg. cukup baca tautan stack overflow yang diposkan Alex Black ... sepertinya proc /.../ cmdline memiliki batas karakter 4096 yang sama.
Barton Chittenden
4

Contohnya adalah tentang javaproses, inilah alat yang dapat menunjukkan beberapa tambahan rincian proses: jps. Coba saja, Anda mungkin memilikinya - itu bagian dariJDK

Ini mirip dengan psperintah dasar - tetapi meremehkan beberapa java-speciffics. Penggunaan utama adalah untuk mengidentifikasi menjalankan proses java, yang kemudian diperiksa dengan alat analisis java lainnya , seperti 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

Ekstrak dari halaman manual tentang opsi:

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
sumber
2

pipa menjadi 'kurang' Anda seharusnya tidak memiliki masalah bergulir ke kiri dan kanan :)

ejes
sumber
2
memipisnya menjadi kurang tidak menyelesaikan masalah pemotongan.
Alex Black
ya, itu berhasil untuk saya.
Lagi
Masalah yang saya tekan adalah bahwa proc dipotong hingga 4096 karakter, apakah Anda menemukan cara untuk melewati batas itu?
Alex Black