Go语言技术文章
-
Linux pidfd 把进程管理从容易过期的 PID 数值提升为文件描述符引用。本文说明 pidfd_open、pidfd_send_signal、poll/epoll、waitid 与 close 如何协作,减少 PID 重用造成的误杀风险。272 收藏 -
用 lsblk 固定 JSON 输出列,理解 blockdevices、children 和 PKNAME 的设备层级关系,并处理 null、空数组与脚本化边界。467 收藏 -
通过 prlimit 和 proc limits 查看单个 Linux 进程的软硬资源限制,区分限制与当前用量,解释设置语法、权限、进程身份及重启后的适用边界。228 收藏 -
用 findmnt 从挂载树、目标路径和明确输出列三个角度查看 SOURCE、FSTYPE 与挂载选项,并区分内核挂载表、/etc/mtab 和 /etc/fstab,避免把默认输出或配置意图当成当前挂载事实。136 收藏 -
用 ip neigh 读取 IPv4 ARP 邻居表,区分 reachable、stale、incomplete、failed 与 permanent,并按目标地址、网卡和状态收窄刷新范围。442 收藏 -
使用 ss 分别筛选 TCP LISTEN 与 ESTAB,说明 established 和 connected 的区别、本地与对端端口条件,以及 UDP、权限和空结果的判断边界。279 收藏 -
本文围绕 systemd EnvironmentFile 的变量语法、服务单元配置、root:专用组权限和三层生效检查,给出一套不把环境文件当 shell 脚本的安全加载方案。434 收藏 -
用 journalctl --list-boots 查看启动轮次和 BOOT_ID,再用 -b 选择当前或上一轮启动,最后用 --since 与 --until 缩小故障时间窗口。465 收藏 -
文章 · linux | 3星期前 | 服务管理 · Linux systemd systemd.socket ListenStream Accept socket activation systemd.service
Linux socket 激活把监听端点交给 systemd:.socket 单元负责创建和持有监听 socket,.service 单元只处理 systemd 传入的文件描述符。本文用同名 unit 文件说明 ListenStream、Accept=no/yes、LISTEN_FDS 的职责边界,以及适合采用和需要谨慎的场景。376 收藏 -
Linux 启动变慢时,不要只看最长的服务。本文用 systemd-analyze time、blame 和 critical-chain 建立一套从阶段、候选单元到关键依赖链的排查顺序,并解释 @、+ 以及并行启动带来的判断边界。123 收藏 -
比较 Python Path.replace 与 rename 的覆盖语义,解释相对路径、跨文件系统、Windows 文件占用及异常处理,并给出不先删目标的替换示例和迁移清单。415 收藏 -
Python 的 Popen.communicate 超时后,不能只捕获异常就结束。本文从输出管道、TimeoutExpired、kill 与再次 communicate 四个环节说明如何终止子进程、回收句柄,并保留已经产生的 stdout 和 stderr。457 收藏 -
Python tomllib.load() 接收可读的二进制文件对象,tomllib.loads() 接收字符串。本文围绕文件、bytes 和 str 三种输入边界,说明 TOML 配置的正确读取方式、UTF-8 解码和异常处理。202 收藏 -
Python contextvars 可以用 copy_context() 复制当前上下文,再用 Context.run() 让回调在副本中读取和修改 ContextVar。本文说明上下文隔离、外层恢复、空 Context、重复进入和异常传播等边界。143 收藏 -
使用请求级 LoggerAdapter 为 Python 日志附加上下文,解释 extra、字段缺失、merge_extra 版本边界和默认值的区别,并给出避免请求串号的示例。364 收藏