-
通过 udevadm monitor 的 -k、-u、-p 和 -s 参数,区分内核 uevent 与 udev 规则处理后的事件,并用 DEVPATH、ACTION 和 udevadm test 完成设备事件排查。
-
Linux systemd 中 network.target 只表示网络管理栈已启动,不能直接代表网络可用。本文用客户端服务示例说明 Wants=、After= 与 network-online.target 的配置边界,并给出 NetworkManager、systemd-networkd 及依赖树排查方法。
-
用 journalctl 的服务、时间和优先级参数组合过滤 systemd 日志,整理出适合故障排查、实时跟踪和复杂字段匹配的命令清单。
-
本文用 cgroup v2 的 memory.high、memory.max、memory.current 和 memory.events 建立服务内存边界,说明如何配置、归属进程并区分回收压力与 OOM 风险。
-
Linux 上 ss 看不到监听端口时,先比较当前 shell 与目标进程的网络命名空间,再在同一 netns 中复查 LISTEN、绑定地址和 PID。
-
日志轮转后进程仍写旧文件,通常不是 logrotate 没生效,而是进程持有旧文件描述符。本文用 inode、rename、copytruncate 和 postrotate 解释现象,并给出可复用的排查与修复清单。
-
Linux 删除日志后磁盘空间没有释放时,用 lsof +L1 找到仍持有 deleted 文件描述符的进程,再通过 /proc 复核 PID、FD 和 inode,并用服务重开或受控重启安全释放空间。
-
systemd 可用 ProtectSystem=strict 把服务看到的文件系统默认设为只读,再用 ReadWritePaths 或 StateDirectory 等指令开放少量写入目录。本文给出迁移配置、边界和验证清单。
-
用 findmnt --kernel 配合 --mountpoint 或 --target,并显式输出 PROPAGATION 列,可以判断挂载点是 shared、slave、private 还是 unbindable;再结合 peer group 和 master 关系解释传播方向。
-
journalctl 可以把 --unit 和 --boot 组合使用:先用 --list-boots 确认启动轮次,再按服务单元筛选某次启动的日志;最后可用 --since、--until、-n 和输出格式选项缩小排查范围。
-
cgroup v2 的 memory.high 是内存使用软阈值,越界后让任务承受回收与节流压力,但不会直接触发 OOM;memory.max 是硬上限,回收失败时可在该 cgroup 内触发 OOM。本文说明两者如何配合及怎样用 memory.events 判断命中哪条线。
-
Linux 使用 mount --bind 后执行 umount 报 target is busy,通常要先让 shell 和服务离开目标目录,再区分工作目录、打开文件、子挂载与传播状态逐项排查。
-
用 nftables verdict map 把 TCP 端口映射到服务策略链,讲清命名 map、jump/goto、未命中和默认 policy 的规则设计边界。
-
脚本读取 findmnt 时应同时固定 JSON 格式、平铺结构和输出字段。本文围绕 TARGET、SOURCE、FSTYPE、OPTIONS 的选择,给出 --json、--list、--output 的稳定组合,以及退出码、容量单位和 jq 读取边界。
-
在 Linux nftables 中,为命名集合启用 dynamic、timeout 标志并设置默认 timeout,即可让元素自动过期;单个元素还能覆盖寿命,数据包路径中的 update 则可在再次命中时刷新倒计时。