讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux中信号机制怎么查看系统中信号发送的历史记录

云浩大大_7500

云浩大大_7500

发布时间:2026-10-27 09:06:42

|

765人浏览过

|

来源于php中文网

原创

Linux系统不记录信号发送历史,因信号是内核向进程发送的瞬时异步通知,仅修改task_struct中pending位图,不落盘、不记日志;需提前配置auditd规则(如auditctl -a always,exit -F arch=b64 -S kill)才能捕获kill系统调用。

linux中信号机制怎么查看系统中信号发送的历史记录

Linux系统不记录信号发送的历史记录。

这不是功能缺失,而是设计使然:信号是内核向进程发送的瞬时、异步通知,本身不带持久化日志属性。内核在发送信号时,只是把对应编号写入目标进程 PCB(task_struct)中的 pending 位图,然后由调度器在合适时机触发处理——整个过程不落盘、不记日志、不存档。

所以,如果你在找类似“进程 A 在 14:23:05 向进程 B 发送了 SIGTERM”这样的操作痕迹,默认情况下——
✅ 系统不会保存
❌ journalctl、/var/log/*、ps、/proc/*/status 都查不到
❌ auditd 也不会捕获,除非你提前配置了专门针对 kill() 系统调用的审计规则


真实可行的排查路径(需提前部署或间接推断)

✅ 查看当前哪些信号正挂起在进程中

适用于诊断“为什么进程没响应”:

  • cat /proc/[PID]/status | grep SigQ:显示 pending + blocked 信号队列长度
  • cat /proc/[PID]/status | grep SigPnd:十六进制位图,表示已收到但尚未处理的信号(pending)
  • cat /proc/[PID]/status | grep SigBlk:被阻塞的信号掩码

示例:SigPnd: 0000000000000002 表示第 2 号信号(SIGINT)已送达但未处理。

✅ 审计 kill 系统调用(唯一接近“历史记录”的方式)

必须提前启用 auditd 并添加规则:

sudo auditctl -a always,exit -F arch=b64 -S kill -F a2=0 -k signal_kill

之后可用:

sudo aureport -m --key signal_kill --start today

输出会包含:谁(uid)、哪个进程(pid)、向谁(a1 参数为目标 pid)、发了什么信号(a2 是信号编号)。

⚠️ 注意:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 规则中 a2=0 表示匹配所有信号;若只关心 SIGTERM,可写 a2=15
  • 没启用 auditd 就没有数据,事后无法补录

✅ 结合 systemd 日志反推服务级信号行为

如果进程由 systemctl 管理,且因 OOM、超时或依赖失败被自动终止,journald 可能记录上下文:

journalctl -u nginx.service --since "2026-09-15" | grep -i -E "(killed|oom|timeout|stopping)"

但这不是“信号发送记录”,而是服务管理器的决策日志,信号只是执行手段之一。

✅ shell 历史 + 进程启动时间交叉比对(仅限人工回忆场景)

比如你记得自己执行过:

kill -USR2 12345

那就查:

history | grep "kill.*12345"
ps -o pid,comm,lstart -p 12345 2>/dev/null

再结合应用自身日志(如 Nginx 收到 USR2 会 reload,通常会在 error_log 写一行),才能拼出完整链条。


为什么没有默认信号历史?

  • 信号本质是轻量级事件通知,类似“拍一下肩膀”,不是 RPC 或事务操作
  • 记录每次 kill() 调用会产生显著性能开销和磁盘压力(尤其高频场景)
  • 安全上也需权衡:过度日志可能暴露敏感操作意图

所以 Linux 的哲学是:需要日志,就主动加;不加,就不该有。

不复杂但容易忽略

热门AI工具

更多
Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4250

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3593

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2833

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

6930

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

6582

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3773

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

3285

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

3499

2023.07.25

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

100

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn