#processes #cleanup #start #stop #ordered #container #failure

app orderly

一个用于有序重启、停止和清理进程的程序

6 个版本 (有破坏性)

0.5.1 2019 年 6 月 11 日
0.5.0 2019 年 6 月 1 日
0.4.0 2019 年 4 月 7 日
0.3.0 2019 年 4 月 3 日
0.1.0 2019 年 3 月 29 日

#processes 中排名第 17

MIT 许可证

38KB
1K SLoC

有序

有序 是一个提供有序且可控的启动、停止、重启和清理进程组的工具。它旨在成为可靠服务器/服务/容器/开发环境的构建模块。

有序从 erlang 监督树中获得灵感,它提供构建监督进程树的机制,当进程重启速率超过指定限制时,失败会传播。

有序通过您喜欢的任何编程语言编写的外部钩子执行操作。有序不对您的应用程序或必须执行以正确可靠地运行它所做的设置/拆卸做出任何假设。

如果您对此感兴趣,可以在这里阅读手册。

动机

有序 最初是为了在基于 runit 的 Linux 系统上失败后支持相互依赖的服务可靠的恢复而创建的。在这个配置中,有序在 runit 下方运行,提供分组、从左到右的启动和从右到左的清理,这是 runit 所缺乏的。这使得像崩溃的 fuse 文件系统这样的东西可以干净地卸载和重建,而有序的未排序重启会导致问题。

有序 还解决了开发一组服务器时的一些生活质量问题。通常,当开发“微服务”风格的项目时,您会停止和启动许多相互依赖的进程。 有序 使得这项工作更加容易,因为只需要一个终端窗口 + Ctrl+C 就可以可靠地终止/重启所有服务。

更复杂的 init 系统如 systemd 支持一些此功能,但不适用于这些用例,并且仅适用于完全采用 systemd 的系统。例如,项目负责人是 openbsd 操作系统的粉丝,该操作系统甚至不支持 systemd。

示例

$ orderly -max-start-tokens 2 -start-tokens-per-second 0.1 -- \
  -name redis   -run ./run-redis -wait-started ./wait-redis  -- \
  -name website -run ./run-website -check ./health-check-website -cleanup ./website-cleanup 

要查看带有代码的完整示例,请查看示例目录。

实现状态

软件可以正常工作,但界面尚不稳定,仍在调整。在版本 1.0.0 发布之前,预计会进行破坏性更改。

从源代码构建

builds.sr.ht status

有序是一个 Rust 项目,因此对于大多数克隆了 Git 仓库的人来说,只需运行 cargo build 就足够了。

安装

尚未提供二进制包。

您可以使用 cargo 通过 cargo install orderly 安装程序。

联系方式

尝试邮件列表

或创建github 问题

赞助信息

本项目由 backupbox.io 赞助。

赞助

该项目耗时费力,请通过以下 paypal 捐赠链接 赞助项目。

在您的捐赠中添加一条总长度不超过70个字符的markdown消息,它将被添加到赞助部分。请注意,赞助消息可能会被项目作者的判断拒绝。

作者

Andrew Chambers

依赖项

约2.5MB
约46K SLoC