Go语言技术文章
-
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 收藏 -
Python logging 没有配置 handler 时不会简单地丢弃所有高等级日志,而会使用 logging.lastResort 兜底。本文拆解它的触发条件、WARNING 阈值、sys.stderr 输出以及显式 handler 的接管方式。289 收藏 -
QueueListener 的关键不是把日志放进队列,而是退出时保持正确顺序:先停止业务线程继续产生日志,再调用 stop() 发送停止信号并等待监听线程结束,最后刷新和关闭 Handler。本文给出最小写法、关闭边界和异常兜底。143 收藏 -
Python tomllib 读取 TOML 时要区分 load 与 loads:磁盘文件使用 rb 模式交给 load,内存 bytes 可包装为 BytesIO,字符串才交给 loads。114 收藏 -
目标目录已经存在时,Python 的 shutil.copytree 默认会抛出 FileExistsError。本文围绕 dirs_exist_ok=True 讲清目录合并、同名文件覆盖、copy2 元数据、ignore 过滤和异常边界,给出可重复使用的复制写法。165 收藏