-
服务突然报 too many open files,先别急着把进程上限调大。本文从进程软硬上限、打开句柄类型和监听连接三个证据面定位文件描述符耗尽,再用一个可复测的恢复顺序判断问题是泄漏、突发流量还是配置边界。
-
Linux 上的服务管理器反复重启,常见原因不是 Restart= 配错这么简单,而是进程真实退出原因、启动限流和 journal 时间窗没有对齐。本文从一个 api-worker.service 持续重启的场景出发,按服务状态、退出结果、启动限流和日志证据逐层核对,给出可回滚的修复顺序。
-
区分 systemd After 的启动排序与 Wants 的弱拉起关系,给出双 oneshot 单元配置、只读排查命令及隔离环境复现方式,并说明启动完成不等于业务就绪。
-
systemd 服务反复崩溃时,RestartSec 只负责两次尝试之间的等待,StartLimitIntervalSec 与 StartLimitBurst 才负责窗口内的启动次数。本文用一个最小 unit 配置说明参数区段、重载检查、限流命中后的恢复方式和常见边界。
-
比较 systemd 的 MemoryHigh、MemoryMax 与 MemorySwapMax,给出现有服务 drop-in 配置、组级内存观察方法,并解释父 slice、应用堆预算和 OOM 的适用边界。
-
通过 ~/.ssh/config 为多台服务器配置 Host 别名、独立账号和 IdentityFile,并用 IdentitiesOnly 与 ssh -G 排查密钥串用和配置不生效问题。
-
Linux 文件变更审计应先限定对象、动作和检索 key,再用 path 或 dir 规则记录写入与属性变化。本文说明 auditctl 的最小规则、持久化方式、状态检查与不命中排查。
-
一个服务只需要绑定低端口时,不必长期以 root 身份运行。本文用 Linux capabilities、setcap/getcap 和服务管理器的能力边界配置,做一条可复查的最小权限方案,并说明文件能力的边界与回滚方式。
-
Linux 中 find 与 xargs 通过管道传递文件名时,默认空白解析会拆坏含空格、制表符或换行的路径。本文说明 find -print0 与 xargs -0 的配对写法、-r 和 -- 的参数边界,以及何时直接使用 find -exec。
-
journalctl 默认更适合人眼查看,交给 jq 或日志采集器时应使用 --output=json。本文说明逐行 JSON、json-pretty、json-seq 的区别,以及 --since、--unit、--all、--no-pager 和 jq 管道的组合方式。
-
Linux 上看到默认路由并不等于应用一定会从这张网卡发包。本文用 ip route get 对照目的地址、源地址、fwmark 和实际连通性,定位策略路由与多出口主机的出站选择。
-
使用 ip netns exec 找不到接口时,先确认命名空间名称和进程所在的 network namespace,再区分接口归属与链路状态,避免在错误的视图里重复创建或启用设备。
-
cgroup v2 的 memory.high 是内存节流边界,不是 OOM 硬上限。本文用可复制的命令说明如何配置字节值,并结合 memory.current、memory.events.local、memory.stat 和 PSI 排查超限原因。
-
Linux inotify 报监控数量不足时,先区分 watches、实例和事件队列,再用 sysctl 临时调整并持久化配置,避免盲目放大内核资源上限。
-
用 systemd-mount 临时创建 .mount 或 .automount 单元,说明块设备、tmpfs、自动挂载、设备绑定、状态查询与卸载命令,帮助 Linux 运维在不改 /etc/fstab 的前提下完成一次性挂载。