linux技术文章
-
logrotate 轮替后应用继续写旧日志,通常是进程仍持有旧文件描述符。本文用 /proc//fd 定位 inode,并比较 postrotate 重载与 copytruncate 的适用边界。 285 收藏 -
排查容器或服务目录不一致时,先读取 /proc/PID/ns/mnt 确认 mount namespace,再查看目标进程的 mountinfo,最后用 nsenter 从同一挂载视图检查目录;本文还区分根目录不同、权限不足和 PID 复用。284 收藏 -
通过 systemctl edit 为指定 systemd service 添加 Environment= 或 EnvironmentFile=,再配合 daemon-reload、restart 和进程环境检查,让变量只在目标服务内生效。283 收藏 -
服务主进程看起来没有打开目标文件,但真正访问动作发生在 fork 出来的子进程时,strace -f 能把这条调用链串起来。本文用 follow-forks、-e trace=%file 和 -o 输出文件逐步缩小范围,并说明如何核对 PID、路径与返回值。282 收藏 -
通过 memory.max、memory.current、memory.events 和 memory.events.local 建立一套可读的 cgroup v2 内存排障方法,明确 oom 计数与 oom_kill 计数的区别,避免看到 OOM 就误判进程已经被杀。281 收藏 -
掌握 journalctl 按 systemd 服务、时间范围和输出格式导出诊断日志的方法,并排查 unit、时区、权限与空结果等常见问题。280 收藏 -
Linux cgroup v2 中,memory.current 用来观察当前及后代 cgroup 的内存,memory.max 用来设置硬上限;配合 memory.events 可以判断节流、触顶和 OOM。280 收藏 -
Linux tmpfs适合可重建缓存,但容量上限、inode数量、RAM与swap占用以及重启清空边界必须分别设置和判断。本文用挂载命令、参数表和部署清单说明如何安全选择tmpfs。279 收藏 -
用 list-timers、status 和 journalctl 三步确认 Linux 定时器是否按时触发,并区分未到时间、服务失败与日志缺失。277 收藏 -
Linux 中判断默认路由不能只看 ip route 的排列顺序:先按最长前缀缩小候选,再比较 metric,最后用 ip route get 验证实际出口。同 metric 场景应明确区分等价多路径和主备配置。277 收藏 -
nftables 命名 set 可以让地址元素自动过期。本文从 flags timeout、元素 timeout、expires 查看和 update 刷新四个边界说明配置方法。277 收藏 -
Linux 终端里的 ulimit -n 调高后,服务仍可能因为启动链不同而报 too many open files。本文从 /proc/PID/limits 入手,区分 shell、systemd、容器、单进程 RLIMIT_NOFILE 与系统级 file-max,给出可复查的修复路径。275 收藏 -
/run 或容器临时目录写满时,df -h 看到的 tmpfs 并不等于一块独立硬盘。本文用 findmnt、df -h、df -i 和 mount 参数核对 tmpfs 的挂载、容量、inode 与内存边界。273 收藏 -
目录被移动后,inotify 的旧 watch 描述符并没有变成新的永久路径身份。本文从事件对象边界、wd 映射、目录树重扫和队列溢出四个方面说明如何恢复可靠监听。273 收藏 -
Bash 启用 set -euo pipefail 后,grep 无匹配和管道中间命令失败不应混为一谈。本文用条件上下文、PIPESTATUS 和审计日志,给出保留严格模式的处理方案。273 收藏