linux技术文章
-
Linux systemd 服务失败重启时,应组合使用 Restart=on-failure、RestartSec、StartLimitIntervalSec 和 StartLimitBurst,并用退出码区分可恢复故障与不可恢复配置错误。本文给出 unit 配置和 systemctl、journalctl 复查方法。275 收藏 -
systemd-journald 默认可能只把日志留在运行时目录,重启后排障信息就不完整。本文用 drop-in 配置 Storage=persistent,并解释 /var/log/journal、journalctl --flush、SystemMaxUse 与日志轮转的配合方式。180 收藏 -
find 默认会继续进入子目录中的挂载点。本文围绕 -xdev 说明如何限制跨文件系统搜索,区分挂载点条目与内部内容,并梳理 -mount、-L、多起点路径和脚本复查时的边界。214 收藏 -
Linux bind 挂载排障时,不要只看默认树形输出。本文用 findmnt 固定 SOURCE、TARGET、FSTYPE 和 OPTIONS 列,再按目标路径和子挂载查询,帮助你准确对应源目录与挂载目标。207 收藏 -
journalctl 可以把服务单元和启动周期作为两个筛选维度。本文用 --unit、--boot 和 --list-boots 组合查询,说明当前启动、历史启动、日志字段与空结果排查边界。356 收藏 -
ip route get 可用 mark 模拟带标记条件下的策略选路。本文说明规则匹配、只读对照查询与 dev、via、src 等输出字段,并区分选路结果、真实打标和连通性。320 收藏 -
ss 通过 -p 显示使用 socket 的进程,配合 -l、-n 和 sport 过滤器可以快速定位监听端口。本文解释 users 输出中的程序名、PID、文件描述符,以及权限不足和网络命名空间导致的关联缺失。327 收藏 -
systemd-cgtop 按 cgroup 实时观察服务的 CPU、内存、任务数和磁盘 I/O。本文说明按资源排序、缩小层级、解释 accounting 空白与多核 CPU 百分比,并用 batch 模式导出有限次采样。380 收藏 -
systemd-cgls 怎样按服务单元查看 cgroup 树?本文用 --unit、--full、--no-pager 展开服务层级,并说明 --all、-k、-M 的排查边界。449 收藏 -
journalctl 只输出指定字段时,应把 -o json 与 --output-fields=字段列表分开使用。本文用一个逐行 JSON 日志小工具说明字段白名单、服务过滤、固定元数据和字段缺失的处理边界。360 收藏 -
journalctl 可通过启动列表取得 boot ID,并用 -b 固定查询指定启动。本文说明相对偏移、消息时间范围、脚本输入与历史日志留存边界,避免把编号或空结果误判。415 收藏 -
systemd 的 RestartForceExitStatus 可以把指定退出码、退出状态名或信号名纳入强制重启判断。本文用一个退出码 42 的服务单元说明配置写法、主进程范围、oneshot 边界与排查路径。199 收藏 -
systemd RuntimeDirectory 可以统一管理服务运行目录。本文用测试单元说明相对路径、账户权限和应用接入,并区分停止清理、重启保留与持久化边界。367 收藏 -
用 systemd 的 StateDirectory 声明服务状态目录,结合 STATE_DIRECTORY、服务用户、目录权限和 ProtectSystem=strict,建立可观察且跨重启保留的状态文件边界。399 收藏 -
Bash 管道默认只返回最后一个命令的状态,容易掩盖中间失败。本文说明如何启用 pipefail,让失败状态传到管道外层,并用 PIPESTATUS 区分各段命令,同时处理 set -e 和预期失败的边界。290 收藏