linux技术文章
-
Linux namespace 隔离不是一个总开关。本文用 unshare 创建最小环境,结合 /proc/self/ns、mountinfo、PID 视图和 user 映射排查配置是否真正生效。197 收藏 -
eBPF 验证器不仅检查指令数量,还会沿分支模拟寄存器、栈、指针类型和标量范围。宽范围循环、路径相关指针和无法合并的状态会迅速放大验证复杂度。本文从状态空间解释原因并给出排查与收敛方法。189 收藏 -
systemd 的 EnvironmentFile 中,反斜杠续行会删除换行;需要保留真实换行时,应使用可跨行的引号值,并在服务进程中核对最终环境。186 收藏 -
想用 Linux perf stat 观察单个进程的 cycles、instructions 等硬件事件,应使用 -p PID 限定目标并用 -e 选择事件,而不是直接做全系统统计。本文说明命令写法、线程边界、权限提示和结果复查方法。185 收藏 -
Linux 可用 ip rule from 按源地址匹配流量,再 lookup 独立路由表。本文用保留地址示例讲清规则优先级、表内直连与默认路由、ip route get 验证、回滚以及 rp_filter 注意事项。181 收藏 -
Linux hostname 属于进程所在的 UTS namespace。本文用 unshare、/proc/PID/ns/uts 和 nsenter 说明隔离视图、CAP_SYS_ADMIN 权限与宿主机 hostname 不变的原因。177 收藏 -
systemd 的 Restart=always 只负责决定是否重启,RestartSec 和 StartLimit 参数决定重试节奏与上限。本文从退出码、journal、依赖关系和恢复步骤排查服务失败循环。167 收藏 -
通过 journald 的 Storage=persistent 把日志保存到 /var/log/journal,并使用 journalctl --flush、--list-boots 和 -b -1 验证重启前日志,附磁盘空间限制与常见故障排查。166 收藏 -
Linux xargs 默认按空白解析输入,文件名包含空格、换行或引号时可能被拆错。本文用 find -print0 与 xargs -0 说明 NUL 分隔的原因、正确写法、-- 参数和批量边界。160 收藏 -
Linux vmstat 的 si 和 so 分别表示从磁盘换入、向磁盘换出内存。本文从采样口径开始,结合 swpd、free、r、b、wa 以及 /proc/vmstat 的 pswpin、pswpout,给出判断持续换页的排查方法和边界。153 收藏 -
软件包可以在 /usr/lib/sysusers.d 安装声明文件,由 systemd-sysusers 幂等创建系统用户、同名主组和附加组。本文说明 u、g、m 记录、自动 UID/GID、目录优先级及 tmpfiles.d 分工。150 收藏 -
从统一 cgroup v2 层级、CPUQuota、MemoryHigh、MemoryMax 到事件观测,梳理 Linux 服务 CPU 与内存限制的配置方法、参数边界和回滚思路。150 收藏 -
Linux strace -f 会把子进程的系统调用也带进来,输出很快变得难读。本文用 -e、-P、-o、-ff、-qq 和 -s 分层缩小范围,并说明如何验证筛选没有把关键调用隐藏掉。149 收藏 -
systemd timer 的 OnCalendar 出现重复执行时,重点检查重叠日历表达式、多个 timer 共用服务以及 Persistent 补偿触发。本文给出一套可复查的配置和排障方法。144 收藏 -
Linux 软链接保存目标路径,mount --bind 接入目录子树;本文用 readlink、findmnt 和 mount namespace 说明两者在文件树映射、隔离、权限与回滚上的区别。142 收藏