2个版本
使用旧的Rust 2015
0.0.2 | 2015年5月19日 |
---|---|
0.0.1 | 2015年5月17日 |
#11 in #pocket
13KB
298 行代码,不含注释
rust-pm - 简介
这是一个口袋进程管理器。将来它将成为systemd更好的模仿。看看这个。
使用它非常简单,只需将rust-pm.toml放入与rust-pm
相同的文件夹,并使用如下配置启动:
server-port = "localhost:4000"
[bad_sleeper] # Process name
command = "./bad_sleeper.py" # right now support 0 args commands
max_retries = 3 # 0 means forever
如果幸运的话,你可以在localhost:4000
打开浏览器,并看到如下内容:
[{
"command" : "./bad_sleeper.py",
"max_retries" : 0,
"name" : "bad_sleeper",
"status" : {
"meta" : 1,
"state" : "running"
}
}]
rust-pm
启动并监视进程。如果失败,它将启动另一个实例,最多max_retries
次。
想法
到目前为止,stdin
、stdout
和stder
已被管道传输。我们可能将其更改为继承,这样rust-pm
的输出实际上就是进程输出。这取决于我们将如何处理日志。
警告
这是一个处于早期阶段的项目,尚未在生产环境中使用。
待办事项
- 增强API以支持扩展和缩小进程。
- 实现0
max_retries
表示无限。 完成 - 允许为进程配置
workdir
。 - 投资于日志? 完成。到目前为止,我们使用了简单的
writeln!
,因为特定的线程处理stdout
。 - 实现fern以替换奇特的
writeln!
- 添加命令行解析器以指定配置文件。这样,
rust-pm
可以被放置在$PATH
,并使用任何配置文件运行。
许可
MIT
依赖关系
~6MB
~148K SLoC