Untuk Windows, saya pikir Process Explorer menunjukkan kepada Anda semua utas dalam suatu proses.
Apakah ada utilitas baris perintah yang serupa untuk Linux yang dapat menunjukkan kepada saya detail tentang semua utas proses tertentu yang muncul?
Saya pikir saya harus membuat diri saya lebih jelas. Saya tidak ingin melihat hierarki proses, tetapi daftar semua utas yang dihasilkan oleh proses tertentu
Lihat tangkapan layar ini
Bagaimana ini bisa dicapai di Linux? Terima kasih!
command-line
shell
process
Lazer
sumber
sumber
Jawaban:
Alat klasik
top
menunjukkan proses secara default tetapi dapat dikatakan untuk menunjukkan utas denganH
tombol tekan atau-H
opsi baris perintah. Ada juga htop , yang miriptop
tetapi memiliki scrolling dan warna; ini menunjukkan semua utas secara default (tapi ini bisa dimatikan).ps
juga memiliki beberapa opsi untuk menampilkan utas, terutamaH
dan-L
.Ada juga alat GUI yang dapat menampilkan informasi tentang utas, misalnya qps (pembungkus GUI sederhana
ps
) atau conky (monitor sistem dengan banyak opsi konfigurasi).Untuk setiap proses, banyak informasi tersedia di
/proc/12345
mana12345
ID proses. Informasi tentang setiap utas tersedia di/proc/12345/task/67890
mana67890
ID utas kernel. Di sinilahps
,top
dan alat-alat lain mendapatkan informasinya.sumber
htop
tampaknya tidak menunjukkan kepada saya utas. Mereka menyebutkanH
kunci sebagai cara untuk bertukar antara memperlihatkan dan menyembunyikan utas, tetapi masih berfungsi sebagai kunci Bantuan ...h
untuk bantuan, huruf besarH
untuk menampilkan / menyembunyikan utas.Daftar utas di Linux
Saat ini memberikan jawaban
Saya ingin memperjelas bahwa setiap jawaban di sini memberi Anda apa yang telah Anda tentukan, daftar semua utas yang terkait dengan suatu proses, ini mungkin tidak jelas
htop
karena, secara default, mencantumkan semua utas pada sistem, bukan hanya proses tetapitop -H -p <pid>
bekerja lebih baik misalnya:Sebagai catatan, utas dengan
-90
sebenarnya adalah utas real-time.tapi
Ada juga pilihan lain yang benar CLI
ps -e -T | grep <application name or pid>
-e
menunjukkan semua proses-T
daftar semua utas|
menyalurkan output ke perintah selanjutnyagrep
ini memfilter kontenIni sebuah contoh:
Masing-masing memiliki PID yang sama sehingga Anda tahu mereka dalam proses yang sama.
sumber
sed
bukannyagrep
Anda dapat melestarikan judul dengan kode sepele:ps -e -T | sed -n '1p; /clementine/p;'
man top
mengatakan itu adalah alias untukLWP
danTID
, sedangkan LWP = proses ringan, dan TID = pengenal utas.htop , versi kutukan atas, memiliki opsi tampilan untuk menampilkan semua utas untuk setiap proses dalam tampilan hierarki. Memulai
htop
dan menekan F5akan menghasilkan:sumber
Anda dapat mencoba menggunakan:
Sebagai contoh:
Setiap utas memiliki PID masing-masing.
sumber
Dua alat standar untuk menunjukkan informasi proses adalah
ps
dantop
(danhtop
yang serupa / diperbaiki ).Catatan:
ps -m
,ps m
,ps H
...)Tampilan realtime dari semua atau proses, menggunakan
top -H
Tampilan instan semua proses dan utas, gunakan
ps -eLf
Utas informasi dari suatu proses, menggunakan
ps -T
(catatan: gunakan salah satu opsi
-C command
, atau-p PID
untuk memilih proses)Detail utas informasi suatu proses, menggunakan custom
ps
sumber
Anda bisa mencoba
top -H -p <pid>
.Tetapi harap dicatat pada beberapa pilihan '-H' rasa Unix tidak tersedia dalam
top
perintah.sumber
-H
; Linux menggunakan alat GNU (termasukps
) dan UNIX tidak. (Hal ini, tentu saja, generalisasi ...)Ini akan menampilkan utas sebagai proses. Juga ingat bahwa semua utas multi-utas harus memiliki PID yang sama. Linux melakukan ini dengan membuat grup utas. Utas pertama adalah pemimpin grup dan PID-nya akan tgid (utas grupID) dari grup utas.
Anda dapat mengetahui PID aktual dan status utas dengan menggunakan sistem file / proc. Cara lain untuk mencapai ini adalah dengan memeriksa PID dengan menggunakan ps, kemudian jalankan perintah berikut:
Kemudian periksa lebih lanjut id / tgid dari utas dan jalankan perintah berikut:
sumber
Ini akan memberi Anda daftar utas, yang terkait dengan proses Anda (yaitu process_id) [Digunakan di Ubuntu. Ada kemungkinan bahwa opsi -H tidak tersedia pada beberapa rasa linux]
sumber
Perintah di atas menunjukkan jumlah running thread untuk proses tertentu pid jika untuk proses java
sumber
Saya mencari yang sama, dan dapat membuat skrip bash berikut,
Ini masih bekerja, saya akan memperbarui ini karena saya meningkatkan skrip.
Saya bukan pakar unix, saya yakin beberapa pakar dapat menulisnya dalam 2 baris, dengan kualitas yang lebih baik, tetapi tujuan saya adalah untuk memberikan solusi yang berfungsi untuk orang lain.
perbarui dengan filter dan proses informasi
sumber