Supervisor:Linux 进程守护与集中化管理实战指南

在服务端开发与系统运维中,如何确保编写的 Web 服务、消息队列消费者、数据同步脚本等后台进程能够长期、稳定地运行? 此前我们介绍过 Windows 平台下的神器 NSSM,它能将任意控制台程序包装为系统服务。而在 Linux / UNIX 生态中,最负盛名、应用最广泛的进程控制与守护系统莫过于 Supervisor。 无论是微服务日常管理、防止进程异常崩溃退出,还是在 Docker 容器内部管理多个关联进程,Supervisor 都能以极低的心智负担提供自动拉起、日志轮转与可视化控制能力。 ...

2026年9月23日 · 7 分钟 · 3068 字

Material for MkDocs:打造现代化技术文档站的开源利器

在开源项目和软件工程领域,一份赏心悦目、检索高效、结构清晰的技术文档,往往能够决定一个工具能否被快速推广与普及。 如果你浏览过像 FastAPI、Pydantic、Ruff / uv (Astral)、Polars 或 TiDB 等知名开源项目的官方文档,你一定会被其优雅的排版、流畅的即时搜索以及出色的暗色模式所吸引。这些文档站点的背后,几乎都站着同一个统治级的开源利器 —— squidfunk/mkdocs-material(又称 Material for MkDocs)。 ...

2026年9月23日 · 6 分钟 · 2782 字

Python venv 完全指南:虚拟环境一文讲透

“项目 A 要用 requests 2.x,项目 B 要 3.x,两个都装在同一个 Python 里”——这是每个 Python 新手迟早撞上的墙。更常见的是:pip install 装了一堆包之后,系统 Python 变得一团乱,重装系统前根本不敢动它。 venv(Virtual Environment,虚拟环境)就是 Python 官方给的答案:每个项目一个独立的"小房间",包各装各的,互不干扰。它是 Python 3.3 起内置的标准库模块,不需要装任何额外工具,也是 2026 年每个 Python 项目的第一行命令。这篇文章把它从原理到实战讲透。 ...

2026年9月14日 · 9 分钟 · 4089 字

自定义事件

以下是一个使用 Python 实现自定义事件的示例代码: import threading import time class CustomEvent: def __init__(self): self.handlers = set() def add_handler(self, handler): self.handlers.add(handler) def remove_handler(self, handler): self.handlers.remove(handler) def fire(self, *args, **kwargs): for handler in self.handlers: handler(*args, **kwargs) # 创建一个自定义事件 my_event = CustomEvent() # 定义一个事件处理函数 def on_my_event(message): print('Custom event received:', message) # 添加事件处理函数到事件处理程序列表 my_event.add_handler(on_my_event) # 触发自定义事件 my_event.fire('Hello, world!') # 等待一段时间,以便查看输出结果 time.sleep(1) 在这个示例中,我们首先定义了一个名为 CustomEvent 的自定义事件类,其中包含了添加、删除和触发事件处理程序的方法。接着,我们创建了一个 my_event 实例作为自定义事件,并定义了一个名为 on_my_event 的事件处理函数。然后,我们将 on_my_event 函数添加到 my_event 实例的事件处理程序列表中。最后,我们通过调用 my_event.fire 方法触发了自定义事件,并传递了一个消息作为参数。这将导致事件处理程序被调用并输出消息。 ...

2025年7月28日 · 2 分钟 · 583 字