linux技术文章
-
Linux inotify 出现 IN_Q_OVERFLOW 时,不能继续相信增量事件。本文说明如何检查队列参数、暂停消费、全量重扫目录并重建 watches,避免索引和缓存悄悄失真。398 收藏 -
Linux 负载高并不等于 CPU 已满。本文用 /proc/loadavg、vmstat、iostat、pidstat、ps 和锁统计,把 I/O 等待与锁等待拆成可复核的排查证据。398 收藏 -
Linux 主机磁盘告警不一定来自应用数据,journal 日志也可能持续增长。本文用 journalctl 核对实际占用,区分临时清理和长期保留策略,并给出清理后的复测方法。397 收藏 -
dmesg 看不到完整内核日志时,不要先怀疑内核没有输出。本文从日志级别、内核环形缓冲区和 journald 转发三条路径排查,并给出现场保留与复核方法。397 收藏 -
Linux 使用 systemd.timer 安排日历任务时,可通过 Persistent=true 记录最后触发时间,在关机错过执行后于开机激活定时器时补跑一次。本文用 oneshot 服务、OnCalendar 配置和 journalctl 检查说明补跑边界。397 收藏 -
排查 Linux 路径权限时,namei -l 能把路径拆成目录、符号链接和终点对象,并逐层显示模式、所有者与所属组。本文解释输出字段、符号链接边界和最小排查方法。396 收藏 -
Linux io_uring 取消未完成请求的核心,是用 IORING_OP_ASYNC_CANCEL 匹配目标 user_data,同时分别处理取消请求与原请求的 CQE。本文以 liburing 最小示例说明 0、-ENOENT、-EALREADY、-ECANCELED 的含义,以及竞态、批量匹配和资源释放边界。395 收藏 -
udevadm settle 返回非零时,通常说明事件队列在指定时间内没有变空。本文区分全局队列与本次触发事件的等待语义,解释默认 120 秒、--timeout=0、退出码和启动脚本中的安全处理方式。394 收藏 -
Linux 的 /proc//smaps_rollup 能直接提供进程所有内存映射的汇总字段。本文用命令和 Python 解析 Rss、Pss 及 Pss_Anon 等字段,并说明权限、PID 消失和接口边界。 394 收藏 -
Linux logger 使用 --journald 时,可以从标准输入或文件读取 MESSAGE、MESSAGE_ID、PRIORITY 和自定义字段,再用 journalctl 按 FIELD=VALUE 查询并以 JSON 查看完整记录。本文说明字段组织、优先级边界和常见检索问题。393 收藏 -
解释 systemd 的 Restart=on-failure 为什么不会重启被 systemctl stop 手动停止的服务,并给出用状态字段、日志和启动限流区分故障与人工操作的排查步骤。392 收藏 -
用 systemd.exec 的 WorkingDirectory 固定服务当前目录,结合目录权限、daemon-reload、systemctl show 和挂载依赖排查启动失败。392 收藏 -
Linux 审计日志出现 backlog limit exceeded 时,不能只把队列上限调大。本文从 auditctl 状态、lost 计数和 auditd 内部队列入手,区分内核 backlog、守护进程消费和磁盘轮转三个环节,给出可回滚的处理与复核顺序。391 收藏 -
Linux 创建 io_uring 时报 EPERM,不一定是程序参数写错。本文按 io_uring_disabled、io_uring_group、CAP_SYS_ADMIN、SQPOLL 和已有实例边界给出检查顺序。390 收藏 -
systemd.service 使用 Type=notify 时,不会在进程刚启动就认为服务已经可用,而是等待服务通过 sd_notify 发送 READY=1。本文用最小单元和 C 示例说明 NotifyAccess、通知时机、日志排查与启动超时边界。390 收藏