Ketika skrip diluncurkan dari command prompt shell akan menelurkan subproses untuk skrip itu. Saya ingin menunjukkan hubungan antara proses level terminal dan anak-anaknya ps
dalam output gaya pohon.
Bagaimana saya bisa melakukan ini?
Apa yang saya coba sejauh ini
mengajukan: script.sh
#!/bin/bash
ps -f -p$1
Kemudian saya memohon script dari baris perintah yang melewati id proses dari terminal shell:
$ ./script.sh $$
Yang saya inginkan adalah sesuatu seperti ini
- proses shell tingkat atas (terminal)
- ./script.sh
- proses untuk
ps
perintah itu sendiri
USER PID [..]
ubuntu 123 -bash
ubuntu 1234 \_ bash ./script.sh
ubuntu 12345 \_ ps auxf
apa yang saya dapatkan adalah:
PID TTY STAT TIME COMMAND
14492 pts/24 Ss 0:00 -bash
pstree
?pstree
dan tidak bisa menghasilkan output yang bermakna, saya pikirpstree $$
baru saja menghasilkanbash--pstree
tidak persis apa yang saya cari.ps
, jadi apa lagi yang Anda harapkan untuk dilihat kecuali untukpstree
?pstree -p $$
? Atau, jika Anda ingin lebih banyak menampilkan baris perintahpstree -pa $$
,. Atau, jika Anda ingin menunjukkan semua proses induk naikpstree -psa $$
,.Jawaban:
Mencoba
sumber
$1
argumen ke skrip atau menggunakan$$
untuk melihat pohon mulai dari shell saat ini ... Dapatkah Anda memperbarui jawaban Anda untuk memasukkan informasi tentang cara mendapatkan hutan mulai dari proses tertentu?Saya menemukannya setelah membaca jawaban pengguna super ini , mencatat komentar ini
dan bereksperimen
hasil
sumber
OUTPUT MODIFIERS: f ASCII-art process hierarchy (forest)
Anda dapat menggunakan perintah
ps f -g <PID>
dan membuat stat proses root untukPID
:sumber
Coba ini:
sumber