Linux跟踪错误进程

问题:在centos机器上 ps aux 或者 top -c 机器会卡死

通过跟踪ps进程:

strace -tt -T -v -o /root/strace-ps.log -s 1024 ps -aux
1

打开strace-ps.log,查看最后,发现应该是6374的子进程有问题,因为无法读取进程信息

/proc/6374/cmdline
1

也无法打开,判断应该就是这个进程有问题。

strace  ls /proc/6374
1

kill -9 此进程,一切恢复正常。

补充

strace可以跟踪到一个进程产生的系统调用,包含参数、返回值、执行消耗的时间。  strace的常用的选项以及选项对应的含义如下:

选项 含义
-c 统计每一系统调用的所执行的时间,次数和出错的次数等
-f 跟踪由fork调用所产生的子进程
-t 在输出中的每一行前加上时间信息
-tt 在输出中的每一行前加上时间信息(微妙级)
-T 显示每一调用所耗的时间
-e trace=set 只跟踪指定的系统调用。例如:-e
-e trace=file 只跟踪有关文件操作的系统调用
-e trace=process 只跟踪有关进程控制的系统调用
-e trace=network 跟踪与网络有关的所有系统调用
-e strace=signal 跟踪所有与系统信号有关的 系统调用
-e trace=ipc 跟踪所有与进程通讯有关的系统调用
-o filename 将strace的输出写入文件filename -p pid 跟踪指定的进程pid
最近更新: 12/9/2018, 10:09:30 PM