› Linux 下如何查看系统各个进程挂掉的历史信息?

2018-01-19 23:34:10 +08:00
 helloworld12

我想知道为什么我的某个进程挂掉,是自己主动结束,还是资源耗尽被系统杀死之类的,或者是别人发送了 kill 指令

有个相同的帖子

有没有知道的?

3348 次点击
所在节点    问与答
5 条回复
helloworld12
2018-01-19 23:45:21 +08:00
嗯, 看到一个关键词 coredump
找找看 学习下
sfqtsh
2018-01-19 23:45:22 +08:00
用 systemtap。
sfqtsh
2018-01-19 23:50:17 +08:00
给你个 systemtap 的脚本,监控某进程接受到的所有信号:

probe begin
{
printf("%-8s %-16s %-8s %-16s %6s %-16s\n",
"SENDPID", "SENDNAME", "RECEPID", "RECENAME", "SIGNUM", "SIGNAME")
}

probe signal.send
{
if (uid() == 1234)
printf("%-8d %-16s %-8d %-16s %-6d %-16s\n",
pid(), execname(), sig_pid, pid_name, sig, sig_name)
}
helloworld12
2018-01-20 02:09:10 +08:00
@sfqtsh 谢谢啦
sfqtsh
2018-01-20 12:17:01 +08:00
@helloworld12 上面那个是根据用户 id 过滤的,可以将之改为 sig_pid。。。或者根据进程名称过滤:
if(isinstr(pid_name, "abcd"))

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/424388

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX