-
systemd-cgls 怎样按服务单元查看 cgroup 树?本文用 --unit、--full、--no-pager 展开服务层级,并说明 --all、-k、-M 的排查边界。
-
journalctl 只输出指定字段时,应把 -o json 与 --output-fields=字段列表分开使用。本文用一个逐行 JSON 日志小工具说明字段白名单、服务过滤、固定元数据和字段缺失的处理边界。
-
journalctl 可通过启动列表取得 boot ID,并用 -b 固定查询指定启动。本文说明相对偏移、消息时间范围、脚本输入与历史日志留存边界,避免把编号或空结果误判。
-
systemd 的 RestartForceExitStatus 可以把指定退出码、退出状态名或信号名纳入强制重启判断。本文用一个退出码 42 的服务单元说明配置写法、主进程范围、oneshot 边界与排查路径。
-
systemd RuntimeDirectory 可以统一管理服务运行目录。本文用测试单元说明相对路径、账户权限和应用接入,并区分停止清理、重启保留与持久化边界。
-
用 systemd 的 StateDirectory 声明服务状态目录,结合 STATE_DIRECTORY、服务用户、目录权限和 ProtectSystem=strict,建立可观察且跨重启保留的状态文件边界。
-
Python logging 没有配置 handler 时不会简单地丢弃所有高等级日志,而会使用 logging.lastResort 兜底。本文拆解它的触发条件、WARNING 阈值、sys.stderr 输出以及显式 handler 的接管方式。
-
QueueListener 的关键不是把日志放进队列,而是退出时保持正确顺序:先停止业务线程继续产生日志,再调用 stop() 发送停止信号并等待监听线程结束,最后刷新和关闭 Handler。本文给出最小写法、关闭边界和异常兜底。
-
Python tomllib 读取 TOML 时要区分 load 与 loads:磁盘文件使用 rb 模式交给 load,内存 bytes 可包装为 BytesIO,字符串才交给 loads。
-
目标目录已经存在时,Python 的 shutil.copytree 默认会抛出 FileExistsError。本文围绕 dirs_exist_ok=True 讲清目录合并、同名文件覆盖、copy2 元数据、ignore 过滤和异常边界,给出可重复使用的复制写法。
-
Python pathlib 复制符号链接可选择复制所指内容或重建链接。本文通过隔离示例说明 follow_symlinks、相对目标与对象类型判断,并给出旧版本和权限注意事项。
-
Python 3.12 起可以用 type 语句或 typing.TypeAliasType 显式声明可复用类型别名。本文从简单别名、泛型参数和运行时元数据出发,说明 TypeAliasType 与普通赋值、TypeAlias、NewType 的区别及版本边界。
-
Python 装饰器把函数包装成 *args、**kwargs 后,inspect.signature 默认会沿着 __wrapped__ 找回原函数签名。本文说明 functools.wraps、follow_wrapped=False 和显式 __signature__ 的关系,并给出用 Signature.parameters 与 bind 做参数适配的写法。
-
在 Python dataclass 中,使用 typing.ClassVar 标注类级配置后,dataclasses 会把它排除出字段集合和生成的初始化参数。本文用最小示例说明普通标注、ClassVar、fields()、asdict() 以及继承和可变配置的边界。
-
Python configparser 默认启用 BasicInterpolation,配置值中的单个百分号可能被当成插值语法。本文说明为什么要写成 %%、如何使用 %(name)s 引用配置、怎样用 raw=True 读取原文,以及什么时候应该关闭 interpolation。