在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
分析Linux 进程的方法有哪些?ps查看进程id,看进程还在不在以及进程状态,在的话strace、psstack看下进程当前信息,是不是卡死在哪个位置,对比各帧最后调用信息找到异常点,如进程不在有corefile文件,直接上gdb查看corefile信息,其他疑难杂症怀疑进程状态信息的时候,看/proc/pid下面的进程状态信息。
1、strace
trace system calls and signals 跟踪进程内部的系统调用和信号
什么是系统调用?系统调用,指运行在「用户态」的程序向操作系统「内核态」请求需要更高权限运行的服务,系统调用提供用户程序与操作系统之间的接口。
strace后面跟着启动一个进程,可以跟踪启动后进程的系统调用和信号,这个命令可以看到进程执行时候都调用了哪些系统调用,通过指定不同的选项可以输出系统调用发生的时间,精度可以精确到微秒,甚至还可以统计分析系统「调用的耗时」,这在排查进程假死问题的时候很有用,能帮你发现进程卡在哪个系统调用上。已经在运行的进程也可以指定-p参数加pid像gdb attach那样附着上去跟踪。
2、pstack
print a stack trace of a running process 打印出运行中程序的堆栈信息。
执行命令pstack pid 你能看到当前线程运行中的堆栈信息,其中的pid可用之前的ps命令获得,pstack可以看到进程内启动的线程号,每个进程内线程的「堆栈」内容也能看到。
3、pstree
display a tree of processes pstree按树形结构打印运行中进程结构信息,可以直观的查看进程和它启动的线程的关系,并能显示进程标识。
4、gdb
gdb是GNU开发的gcc套件中Linux下程序调试工具,你可以查看程序的堆栈、设置断点、打印程序运行时信息,甚至还能调试多线程程序,功能十分强大。在这里把gdb当成一个命令来讲有点大材小用。
要用gdb调试C/C++程序首先编译的时候要加-g选项,g++ -g test.cpp -o test这样生成的程序就可以用gdb来调试啦。
可以直接用gdb启动程序调试,命令:gdb prog
用gdb附着到一个已经启动的进程上调试也可以。命令:gdb prog pid
程序崩溃之后参数corefile也可以用gdb调试,看看程序死掉之前留了什么遗言(堆栈信息)给你。命令:gdb prog corefile,这里有一点需要注意,有些Linux
系统默认程序崩溃不生成corefile,这时你需要ulimit -c unlimited这样就能生成corefile了。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
运维管理工作一个月工资多少?有发展前途吗?
运维管理工作一个月工资多少?有发展前途吗?运维工作的范围很大,各个职位之间的工资差距也不小。在一线城市一般初级的运维管理月薪在六千左右,而高级一点的运维工程师月薪能到两三万。说到运维的发展前途,高薪的就业方向还是有不少的,就看个人如何努力了。像Linux运维工程师、数据库运维工程师、数据中心运维工程师等等,都是当前比较热门的职业选择。
12402
2019-10-30 15:29:20
Linux课程零基础可以学吗?
在服务器市场上,Linux系统因其稳定安全、免费开源和高效便捷等优点使得占有率高达80%,由此可以看出Linux的应用是多么的广泛。因此无论是现在还是未来,学习Linux都是大势所趋。一些IT小白可能会担心,Linux课程零基础可以学吗?回答当然是肯定的。博学谷在线IT培训平台专门针对零基础的学员开设了免费的入门课程,现在我们一起来看看吧!
4105
2020-02-21 15:43:38
切换目录命令之使用Linux命令查看目录信息
切换目录命令之使用Linux命令查看目录信息,cd 是切换所在目录的命令,Linux命令按照来源方式分为两种:Shell内置命令和外部命令。Linux 中的绝大多数命令是外部命令,而 cd 命令是一个典型的 Shell 内置命令,cd 命令没有执行文件所在路径。
2067
2022-02-23 14:37:54
使用Linux命令如何复制、移动文件及目录命令?
使用Linux命令如何复制、移动文件及目录命令?linux下文件复制、移动与删除命令分别为cp、mv、rm。在Linux中非常基础有很重要的命令就是mv移动或重命名文件与目录命令。想要将文件从一个位置移动到另一个地方并且不想复制它那么mv 命令是完成这个任务最优选项。
3148
2022-02-25 14:42:22
Linux文件权限命令如何使用?注意哪些问题?
Linux文件权限命令如何使用?长格式显示的第一列即为文件的权限,对文件有读权限,代表可以读取文件中的数据;对文件有写权限,代表可以修改文件中的数据;对文件有执行权限,代表文件拥有了执行权限可以运行。
2085
2022-03-11 10:34:43