谁是linux SIGKILL的凶手---linux审计日志排障的杀手锏

本文讲述了作者在排查采集器agent被频繁SIGKILL的问题时,如何通过strace追踪可捕获信号,然后借助审计日志找出发送SIGKILL的真正原因,揭示了在没有ebpf工具的情况下,使用系统调用和审计日志进行排障的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景描述

在我们的技术生涯中,总会碰到那精彩的一瞬间,哪怕是一瞬间,曾经的熟悉php内核的同事和今天碰到的排障瞬间,都是我技术生涯中那精彩的一瞬间,写一篇日志记录一下。

今天碰到一个问题,就是采集器的agent 总是被另一个进程在5分钟之后杀掉

具体现象

# sudo strace -p 6574
strace: Process 6574 attached
restart_syscall(<... resuming interrupted read ...>

过了一会收到SIGKILL 信号

# sudo strace -p 6574
strace: Process 6574 attached
restart_syscall(<... resuming interrupted read ...>) = ?
+++ killed by SIGKILL +++

那么我们现在面临的问题是如何找到发送SIGKILL的真凶。我们知道linux 信号里和其他信号还不一样,比如说SIGTERM 是可捕获的,SIGKILL 是不可捕获的,当进程收到信号的时候进程会被操作系统强制杀掉,这也给我排障带来了很大的障碍。

二、谁是SIGKILL真凶的搜查之旅

1)初步使用strace 排障

当出现这个问题的时候我们使用strace 进行排障

具体命令如下

$ sudo strace -p 7000 -e trace=signal

具体排查效果

strace: Process 7000 attached
--- SIGTERM {si_s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值