扩展库 / daemon
daemon
前台服务的进程状态与排他 PID 文件。
支持 UTF-8 路径、协作式停止请求和持有期 PID 文件锁;不负责系统服务注册、后台化或重启。
API
| 接口 | 用途 |
|---|---|
daemon.create(name) | 创建前台服务状态对象 |
service.writePidFile(path) | 持有排他 PID 文件锁 |
service.requestStop() | 设置协作式停止标志 |
daemon.readPidFile(path) | 严格读取正整数 PID;缺失或无效文件返回 -1 |
daemon.isAlive(pid) | 查询当前进程可见状态 |
范例
import daemon
auto service = daemon.create("web")
string pidPath = path.join(path.temp(), "web-" + string(service.pid) + ".pid")
assert service.writePidFile(pidPath)
service.requestStop()
assert service.releasePidFile()
XLang 服务名和路径拒绝内嵌 NUL;service.name 返回可独立持有的字符串,C 的 xdaemon_name 则只借用对象内部文本。公开 C 操作不会把上次失败的 XRT 错误带入成功重试。2026-10-26 Windows/Linux 严格 C、语言中央/FFI 边界及 C/XLang 公开范例 AOT 均通过,双语输出匹配固定黄金文件;顶层服务对象的独立 EXE 在退出期报运行时状态错误,默认门禁保持红色,尚不签收发布级。-SkipAot 只供 Windows C/JIT 聚焦复验。C 句柄的释放、锁作用范围及包级验证见 README。