在 变更集 1981 中,我向 lighttpd 构建中添加了一个守护进程。当一切如预期运行时,它解决了几个问题
- SIGHUP 信号会触发优雅重启(重新加载配置)
- SIGINT 信号现在会触发优雅关机
- 所有未处理的信号都会导致 lighttpd 进程重启
我们必须小心使用这个守护进程,因为它会一直保持活动状态,并以启动它的用户(通常是 root)身份运行。这是我们在重启时从头启动 lighttpd 的唯一方式。
这也将解决 1.5.0 版本中的其他问题
- bug #1271,不安全的日志文件
- … 也许还有其他问题
该守护进程必须实施一些安全措施以保持自身安全
- 该守护进程只能启动在编译时编译到自身中的 lighttpd 二进制文件
- 如果以 root 身份运行,启动用户也必须是 root,或者与 lighttpd 二进制文件的所有者在同一个组中
- … 也许还有更多限制
作为额外功能,我们将添加 ulimit 支持,以便在 lighttpd 使用过多内存时终止其进程。但这将是后续工作。