4 个稳定版本
2.0.0 | 2022 年 5 月 2 日 |
---|---|
1.2.0 | 2022 年 5 月 2 日 |
1.1.0 | 2021 年 11 月 25 日 |
1.0.0 | 2021 年 11 月 15 日 |
#2544 在 命令行工具
33KB
738 代码行
🍳eggsecutor 🥚
一个友好的基于文件的具有状态跟踪功能的守护进程。
目录
安装
-
从 crates.io 安装
cargoinstall eggsecutor
-
从源代码手动构建
$ git clone https://github.com/astherath/eggsecutor $ cd eggsecutor $ cargo install --path=.
使用方法
eggsecutor
在启动单文件二进制文件(作为后台进程运行)时表现最佳。
eggsecutor 1.0
astherath <me@felipearce.dev>
A friendly background process task manager
USAGE:
eggsecutor [SUBCOMMAND]
OPTIONS:
-h, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
clear stops all of the processes being tracked and clears the tracking list
hatch start managing a binary process
help Print this message or the help of the given subcommand(s)
list list all managed processes
stop stop a process by name or pid
常见用法示例
以下是一个简单示例,可以直接运行以展示主要用法循环(需要 flask 和 python3)
# create a simple flask server daemon in a file named "FLASK_SERVER"
cat << EOT >> FLASK_SERVER
#!/usr/bin/python3
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return {"status": 200}
if __name__ == "__main__":
app.run()
EOT
# make the file executable
chmod +x FLASK_SERVER
# start the process from an executable file
eggsecutor hatch FLASK_SERVER
> Hatching process "FLASK_SERVER" and starting to track...
> egg hatched, tracking process with pid: "3670"
# check the process is healthy
eggsecutor list
> Process name pid status
> -----------------------------------
> FLASK_SERVER 3670 Running
# once ready shut down the server by name (or pid)
# the following are equivalent
eggsecutor stop FLASK_SERVER
eggsecutor stop 3670
> stopping process with pid: 3670
# or, if you want to stop ALL running processes being tracked
eggsecutor clear
自定义
按照设计,eggsecutor
是一个低维护(因此,低选项)的工具。
唯一由用户定义的变量是 JSON 状态跟踪文件的位置,默认为
~/.eggsecutor.state
如果需要,可以通过设置 EGGSECUTOR_STATE_FILE
环境变量到一个有效的文件路径来覆盖此路径(如果路径不存在,则会在首次使用时创建)。
依赖
~2.5–4MB
~68K SLoC