pstack是一个脚本工具,其核心实现是使用了gdb以及threadapply all bt 命令,下面使用pstack查看进程函数堆栈。
pstack pid
pstree命令以树状图显示进程间的关系(displaya tree of processes)。ps命令可以显示当前正在运行的那些进程的信息,但是对于它们之间的关系显示的并不清晰。在linux系统中,系统调用fork可以创建子进程,通过shell可以创建子进程,Linux系统中进程间的关系天生是一棵树,树的根就是进程PID为1的init进程。
pstree -p 以树状图显示系统进程关系
pstree -pa pid 以树状图显示进程PID为<pid>的进程以及子进程
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错很有帮助。