#守护进程 #任务管理器 #进程 #有状态的 #跟踪 #文件 #文件路径

app eggsecutor

一个简单轻量级的具有状态跟踪功能的 CLI 守护进程

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命令行工具

MIT/Apache

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