扩展库 / 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。