Runit - 监管服务的应用
Runit 的好处:监管服务,管理状态,日志,可移植,容易打包,代码少。
- 每个服务都和一个服务目录相关联。
- 监管进程是 runsv,服务 daemon 作为 runsv 的子进程运行。
- runsv 可通过各种信号通知子进程
- sv 用于发送命令给 runsv,以及获取服务信息
- 默认服务状态是 up,如果死了,会重新 restart
- runit 确保服务运行的进程状态,包括环境,资源,文件描述符等等
- init.d 存在一个问题,那就是环境变量会污染进程;但系统重启时配置的服务可能会和上次的不一样。runit 解决方法是清空,完全重设。
- runsv 配置日志后,会通过管道将标准输出和标准错误取走写入配置的地方。
- runit 有个日志 daemon:svlogd
- 仅有数百行源代码