linux中使用ps查看进程的所有线程
需要注意的是,查看进程的所有线程信息可能需要以足够的权限运行 ps 命令,例如需要通过 sudo 或以超级用户身份运行该命令。在 Linux 系统中,可以使用 ps 命令和 ps H 命令结合来查看进程的线程信息。ps 命令用于显示系统中当前运行的进程信息,而 ps H 命令则可以显示进程中的所有线程。该命令会输出进程的所有线程信息,包括线程ID、线程状态、CPU 使用率、内存占用等。上述命令中,
在 Linux 系统中,可以使用 ps 命令和 ps H 命令结合来查看进程的线程信息。ps 命令用于显示系统中当前运行的进程信息,而 ps H 命令则可以显示进程中的所有线程。
使用以下命令可以查看指定进程的所有线程信息:
ps H -T <PID>
将 替换为要查看的进程的实际进程ID。
上述命令中,-T 选项用于显示进程的所有线程信息,而 -H 选项则用于列出线程信息时包含线程名(通常为进程名的缩写)。
该命令会输出进程的所有线程信息,包括线程ID、线程状态、CPU 使用率、内存占用等。这些信息可以用于诊断进程中的性能问题或其他故障。
需要注意的是,查看进程的所有线程信息可能需要以足够的权限运行 ps 命令,例如需要通过 sudo 或以超级用户身份运行该命令。另外,查看进程的线程信息可能会影响系统性能,因此在生产环境中应该谨慎使用,并根据需要进行过滤或筛选。
示例:
[root@localhost opt]# ps H -T 1784
PID SPID TTY STAT TIME COMMAND
1784 1784 ? Sl 4:31 /usr/libexec/qemu-kvm -name guest=ubuntu22.04,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libv
1784 1804 ? Sl 0:00 /usr/libexec/qemu-kvm -name guest=ubuntu22.04,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libv
1784 1810 ? Sl 0:00 /usr/libexec/qemu-kvm -name guest=ubuntu22.04,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libv
1784 1811 ? Sl 5:24 /usr/libexec/qemu-kvm -name guest=ubuntu22.04,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libv
1784 1812 ? Sl 5:50 /usr/libexec/qemu-kvm -name guest=ubuntu22.04,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libv
1784 1814 ? Sl 0:09 /usr/libexec/qemu-kvm -name guest=ubuntu22.04,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libv
使用pstack
可以打印运行进程的线程堆栈信息。
pstack
下载:yum install gdb -y
[root@localhost opt]# pstack 1784
Thread 6 (Thread 0x7f075bfff700 (LWP 1814)):
#0 0x00007f077795aa41 in poll () from target:/lib64/libc.so.6
#1 0x00007f077c166c86 in g_main_context_iterate.isra () from target:/lib64/libglib-2.0.so.0
#2 0x00007f077c167042 in g_main_loop_run () from target:/lib64/libglib-2.0.so.0
#3 0x00007f0779b448db in red_worker_main () from target:/lib64/libspice-server.so.1
#4 0x00007f0777c3617a in start_thread () from target:/lib64/libpthread.so.0
#5 0x00007f0777965dc3 in clone () from target:/lib64/libc.so.6
Thread 5 (Thread 0x7f0769176700 (LWP 1812)):
#0 0x00007f077795c62b in ioctl () from target:/lib64/libc.so.6
#1 0x0000555cc0e9f129 in kvm_vcpu_ioctl ()
#2 0x0000555cc0e9f1e9 in kvm_cpu_exec ()
#3 0x0000555cc0e83f5e in qemu_kvm_cpu_thread_fn ()
#4 0x0000555cc11afdf4 in qemu_thread_start ()
#5 0x00007f0777c3617a in start_thread () from target:/lib64/libpthread.so.0
#6 0x00007f0777965dc3 in clone () from target:/lib64/libc.so.6
Thread 4 (Thread 0x7f0769977700 (LWP 1811)):
#0 0x00007f077795c62b in ioctl () from target:/lib64/libc.so.6
#1 0x0000555cc0e9f129 in kvm_vcpu_ioctl ()
#2 0x0000555cc0e9f1e9 in kvm_cpu_exec ()
#3 0x0000555cc0e83f5e in qemu_kvm_cpu_thread_fn ()
#4 0x0000555cc11afdf4 in qemu_thread_start ()
#5 0x00007f0777c3617a in start_thread () from target:/lib64/libpthread.so.0
#6 0x00007f0777965dc3 in clone () from target:/lib64/libc.so.6
Thread 3 (Thread 0x7f076a178700 (LWP 1810)):
#0 0x00007f077795aa41 in poll () from target:/lib64/libc.so.6
#1 0x00007f077c166c86 in g_main_context_iterate.isra () from target:/lib64/libglib-2.0.so.0
#2 0x00007f077c167042 in g_main_loop_run () from target:/lib64/libglib-2.0.so.0
#3 0x0000555cc0f863e1 in iothread_run ()
#4 0x0000555cc11afdf4 in qemu_thread_start ()
#5 0x00007f0777c3617a in start_thread () from target:/lib64/libpthread.so.0
#6 0x00007f0777965dc3 in clone () from target:/lib64/libc.so.6
Thread 2 (Thread 0x7f077083f700 (LWP 1804)):
#0 0x00007f077796052d in syscall () from target:/lib64/libc.so.6
#1 0x0000555cc11b065f in qemu_event_wait ()
#2 0x0000555cc11c28c2 in call_rcu_thread ()
#3 0x0000555cc11afdf4 in qemu_thread_start ()
#4 0x00007f0777c3617a in start_thread () from target:/lib64/libpthread.so.0
#5 0x00007f0777965dc3 in clone () from target:/lib64/libc.so.6
Thread 1 (Thread 0x7f077ca65f00 (LWP 1784)):
#0 0x00007f077795ab36 in ppoll () from target:/lib64/libc.so.6
#1 0x0000555cc11abb55 in qemu_poll_ns ()
#2 0x0000555cc11ac9f5 in main_loop_wait ()
#3 0x0000555cc0f8ba11 in main_loop ()
#4 0x0000555cc0e38bd2 in main ()

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)