Go语言技术文章
-
Request 的请求体是一次性可消费的流,读取 body 后再 fetch 同一个对象容易失败。本文说明 bodyUsed、clone 的正确时机,以及需要改请求时怎样重新构造 Request。301 收藏 -
使用 AbortSignal.any 合并用户、页面与超时取消来源,解释已取消输入、reason 传播、请求级控制器和计时器清理,并说明联合取消不能替代服务端回滚。490 收藏 -
围绕 cgroup v2 的 memory.events 与 memory.events.local,说明怎样读取 low、high、max、oom、oom_kill 等累计事件,并结合 memory.current、memory.high 和 memory.max 判断内存限制问题。144 收藏 -
从服务实际动作出发选择 Linux capability,并用 systemd 的 User、CapabilityBoundingSet、AmbientCapabilities 和 NoNewPrivileges 缩小权限边界。121 收藏 -
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 | 2天前 | 服务管理 · 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 收藏