-
Linux 服务管理器的 RuntimeMaxSec 可以给服务设置最长运行时间,但它不是普通的请求超时。本文用一次性数据同步服务说明如何配置运行时限、从服务状态命令和 journalctl 判断超时结果,并区分正常退出、失败重启与限时后的恢复边界。
-
Linux 上部署一个常驻业务服务时,服务单元与 Docker Compose 的差别不只在于是否容器化。用启动依赖、日志入口、恢复方式和回滚颗粒度四个维度,判断订单、接口等服务该选哪条路径。
-
服务明明还有内存,却突然无法创建新线程或子进程,优先检查 cgroup v2 的 pids.max、pids.current、pids.peak 和 pids.events,再回到服务管理器的 TasksMax=确认限制来源。本文给出一套可回滚的定位顺序。
-
脚本读取 findmnt 时应同时固定 JSON 格式、平铺结构和输出字段。本文围绕 TARGET、SOURCE、FSTYPE、OPTIONS 的选择,给出 --json、--list、--output 的稳定组合,以及退出码、容量单位和 jq 读取边界。
-
在 Linux nftables 中,为命名集合启用 dynamic、timeout 标志并设置默认 timeout,即可让元素自动过期;单个元素还能覆盖寿命,数据包路径中的 update 则可在再次命中时刷新倒计时。
-
日志轮转后 df 仍显示磁盘快满,常见原因不是旧日志还在目录里,而是进程仍持有已删除文件的文件描述符。本文用 df、du、lsof 和服务管理器日志命令逐层确认占用来源,并给出不误杀业务进程的恢复步骤。
-
Linux ext4 删除大文件后 df 空间没有回来,通常是进程仍持有已删除文件的文件描述符。本文用 df、du 和 lsof +L1 定位并安全释放空间。
-
Linux tmpfs 使用率高不一定代表物理内存耗尽。本文用 df、du、df -i、Shmem、swap 和 lsof 对照判断挂载上限、可见文件、inode 与删除后仍打开文件的区别。
-
从文件发送到 TCP 连接的实际路径出发,比较 Linux sendfile 与 splice 的适用边界,并用 strace 和返回值验收零拷贝改造是否真的生效。
-
在 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 字段筛选的兼容方案。
-
systemd-tmpfiles 可以用一条 tmpfiles.d 规则同时维护目录权限与过期清理。本文说明 d 类型、Age 字段、--create 与 --clean 的区别,以及为什么只看 mtime 可能误判。
-
把 Linux 服务改成 DynamicUser=yes 后,原来写在 /var/lib 下的目录很容易因为属主和目录创建时机出问题。本文用 StateDirectory=cache-worker 迁移一个缓存 worker,解释目录权限、旧数据迁移、重启复测和回滚边界。
-
从 Linux 服务的 MemoryMax 限制出发,结合 memory.events 和 journalctl 证据判断 OOM 来源,再给出安全的恢复、调参与回滚检查。
-
用 mount namespace 隔离临时挂载时,关键不是只加 -m,而是同时处理挂载表副本、传播属性、权限和清理边界。本文给出 unshare 示例与检查清单。