Apakah ada cara untuk menghasilkan daftar proses lengkap dalam solaris, tanpa garis terpotong? Saya sudah mencoba ps
perintah, dengan argumen berikut:
-f Menghasilkan daftar lengkap. (Lihat di bawah untuk pentingnya kolom dalam daftar lengkap- ing.)
-L Menghasilkan daftar panjang. (Lihat di bawah.)
Jadi, keduanya tampaknya melakukan apa yang saya inginkan, namun, lebih jauh ke bawah di halaman manual ps, saya menemukan ini:
args Perintah dengan semua argumennya sebagai a tali. Implementasi dapat terpotong nilai ini ke lebar bidang; ini tergantung pada implementasi apakah ada pemotongan lebih lanjut terjadi. ini tidak ditentukan apakah string diwakili adalah versi argumen daftar sebagaimana diteruskan ke perintah ketika dimulai, atau merupakan versi argumen karena mereka mungkin telah dimodifikasi oleh aplikasi. Aplikasi tidak bisa tergantung pada kemampuan untuk memodifikasi mereka daftar argumen dan memiliki modifikasi itu- tion tercermin dalam output ps. Implementasi Solaris membatasi string ke 80 byte; string adalah versi daftar argumen seperti itu diteruskan ke perintah ketika dimulai.
Yang pada dasarnya mengatakan output akan terpotong dan tidak ada yang bisa saya lakukan. Jadi, saya datang ke sini. Tentunya orang lain telah mengalami masalah ini dan bahkan mungkin memiliki jalan keluar. Saya kira ps tidak bisa melakukannya dan jadi saya perlu menggunakan alat lain untuk melakukan ini. Apakah itu akurat?
ps
perintah itu? Jika demikian maka silakan perbarui pertanyaan agar lebih jelas.Jawaban:
kamu bisa mencoba
ini memberi Anda daftar semua argumen
atau gunakan ps lain. Jika dijalankan sebagai root (atau pengguna mana pun dengan cukup hak istimewa dalam hal ini)
akan memberi Anda semua argumen. Bagiannya dari SUNWscpu, "Kompatibilitas Sumber, (Usr)"
sumber
pargs
memperlihatkan salinan argumen baris perintah dalam proses (dan opsional lingkungan). Senang tahu, terima kasih!Kernel tidak diharuskan untuk melacak argumen baris perintah. Ketika sebuah program dimulai melalui
execve
panggilan, kernel harus menyalin argumen ke dalam memori proses (sehingga mereka akan tersedia sepertiargv
dalam program C, misalnya). Setelah itu, kernel dapat membuang memori yang digunakan untuk menyimpan argumen baris perintah awal. Proses ini diizinkan untuk menimpa salinan argumennya. Jadi mungkin tidak ada jejak argumen.Beberapa varian unix menyimpan salinan argumen dalam beberapa bentuk. Solaris memaparkan beberapa data di
/proc/$pid
. Pada OpenSolaris 2009.06, satu-satunya jejak argumen ada di/proc/$pid/psinfo
, di mana mereka digabungkan dengan spasi di antaranya (jadi Anda tidak dapat membedakan antarafoo "one" "two"
danfoo "one two"
) dan string yang dihasilkan dipotong hingga 80 byte. Bidang ini/proc/$pid/psinfo
adalah yangps
dicetak di dalamargs
kolom.Omong-omong, opsi
-f
dan-l
mengontrol bidang apa yang dicetak, bukan apakah bidang tersebut dipotong dengan lebar tertentu.sumber
ps -e
memberikan daftar semua proses yang berjalan. Juga ada inips -elf
.sumber
Tergantung pada
ps
perintah yang Anda gunakan, saya menggunakansumber
prstat
akan memberi Anda proses yang sedang berjalan bersama dengan pids mereka dan pemanfaatan CPU.sumber