-
日志轮转后进程仍写旧文件,通常不是 logrotate 没生效,而是进程持有旧文件描述符。本文用 inode、rename、copytruncate 和 postrotate 解释现象,并给出可复用的排查与修复清单。
-
systemd 可用 ProtectSystem=strict 把服务看到的文件系统默认设为只读,再用 ReadWritePaths 或 StateDirectory 等指令开放少量写入目录。本文给出迁移配置、边界和验证清单。
-
用 findmnt --kernel 配合 --mountpoint 或 --target,并显式输出 PROPAGATION 列,可以判断挂载点是 shared、slave、private 还是 unbindable;再结合 peer group 和 master 关系解释传播方向。
-
本文用 systemd WatchdogSec、sd_notify 与 Restart=on-watchdog 配置服务心跳,解释超时重启、NotifyAccess、启动限速和排障方法,避免进程存活却业务假死。
-
在 Linux nftables 中,为命名集合启用 dynamic、timeout 标志并设置默认 timeout,即可让元素自动过期;单个元素还能覆盖寿命,数据包路径中的 update 则可在再次命中时刷新倒计时。
-
在 Linux cgroup v2 中,把目标 PID 逐个写入非根 cgroup 的 cgroup.procs,再向 cgroup.freeze 写入 1 或 0,即可冻结或恢复整棵子树。本文重点说明如何用 cgroup.events 的 frozen 字段确认异步操作完成,并处理权限、祖先冻结与迁移边界。
-
同一个 systemd 服务反复重启后,journalctl -u 容易混入多个运行周期。本文讲清 invocation ID 的含义,给出 v257+ 的 --list-invocations、--invocation、-I 用法,以及旧版本按 _SYSTEMD_INVOCATION_ID 字段筛选的兼容方案。
-
Linux 使用 ss 排查连接时,应先用 state 在内核返回阶段限定 TCP 状态,再用 -p 显示进程归属;按进程名或 PID 可做固定字符串过滤,systemd 服务还可使用 cgroup 条件。本文给出可复制命令、权限说明与选型表。
-
systemd 的 OnCalendar 默认会结合当前时区解释日历表达式。本文用显式 IANA 时区、匹配的 service/timer 单元和 systemd-analyze calendar,解决跨时区部署与夏令时切换时的定时任务漂移问题。
-
nftables 命名 set 可以把大量 IPv4 地址集中成一份可更新的数据源,让过滤规则只保留一次匹配表达式。本文给出集合声明、网段合并、批量增删、加载检查和故障处理方法。
-
systemd 服务反复重启时,应把进程退出、重启策略、重启延迟和启动速率限制分层排查。本文给出证据命令、配置修复与恢复验证清单。
-
systemd 服务反复崩溃时,RestartSec 只负责两次尝试之间的等待,StartLimitIntervalSec 与 StartLimitBurst 才负责窗口内的启动次数。本文用一个最小 unit 配置说明参数区段、重载检查、限流命中后的恢复方式和常见边界。
-
Linux 策略路由通过 ip rule 的 RPDB 选择自定义路由表。本文以双网卡源地址分流为例,给出建表、加规则、route get 验证、回滚和持久化要点。
-
dm-crypt 默认不会把 discard 请求传到下层设备。本文从设备链、queue sysfs 指标和 cryptsetup 配置三方面说明如何判断 SSD TRIM 是否可用,并比较周期性 fstrim 与 --allow-discards 的性能和安全边界。
-
Linux 负载高并不等于 CPU 已满。本文用 /proc/loadavg、vmstat、iostat、pidstat、ps 和锁统计,把 I/O 等待与锁等待拆成可复核的排查证据。