编程

supervisor-config-gen

试用

Bash tool that generates a Supervisor (supervisord) `[program:*]` config file from zero CLI flags — it derives everything from the current directory (program name = dirname, `command=<dir>/run.sh`, `directory=<dir>`, `user=$(whoami)`, logs under `$HOME/logs/supervisord/`) and writes `<dirname>-supervisor.conf` into that same directory, overwriting silently if present. Use when the user wants to generate a Supervisor program config for an app directory that has a `run.sh` entrypoint.

它能做什么

supervisor-config-gen — generate a Supervisor program config from a directory

技能文档

supervisor-config-gen — generate a Supervisor program config from a directory

supervisor-config-gen is a single bash script with no flags, no args, no env vars. Run it from inside an app directory and it emits a Supervisor [program:x] config for that app, inferring everything from the directory itself.

Security & safety

  • Generates a local plain-text config file. No network calls, no external services.
  • The generated config controls what Supervisor executes and as which user — review the output before pointing supervisord at it, same as reviewing any generated shell/config artifact.
  • It overwrites -supervisor.conf in the current directory without prompting if one already exists. Don't run it in a directory where that file has manual edits you want to keep.
  • The script does not sandbox or validate the target run.sh — it just references its path. Make sure run.sh is what you expect before Supervisor runs it.

When to use

  • The user wants a Supervisor program config for an app directory that has a run.sh entrypoint (a startup script Supervisor should manage).
  • The user says "generate a supervisor config for this app" / "supervisorize this" / "make a supervisord conf".

When NOT to use

  • The app has no run.sh — the generated command= will point at a script that doesn't exist. Add/rename a run.sh entrypoint first, or hand-write the config.
  • You need non-default supervisord settings (custom numprocs, environment vars, non-TERM stop signal, different log paths/rotation, etc.) — this tool has no flags to control those. Generate the base config, then hand-edit it.
  • You need configs for multiple apps at once — the tool is single-directory, single-invocation.

Inputs → output

There is nothing to pass in. The script derives every field from ambient state at run time:

FieldSource
program_name (used in filename + [program:x])basename $(pwd) — the current directory's name
command$(pwd)/run.sh — a run.sh is REQUIRED to exist in the current directory (the script doesn't check, it just hardcodes the path)
directory$(pwd)
user$(whoami) — the user invoking the script
stdout_logfile / stderr_logfile$HOME/logs/supervisord/-{out,err}.log
output path./-supervisor.conf (written in the current directory, overwritten if it exists)

Everything else (numprocs=1, stopsignal=TERM, stopwaitsecs=10, stopasgroup=true, killasgroup=true, autostart=true, autorestart=true, redirect_stderr=true, redirect_stdout=true, 50MB log rotation with 10 backups on stdout) is fixed/hardcoded — not configurable via flags.

Example invocation

Given an app directory shitty-app/ containing main.py and run.sh:

cd shitty-app
supervisor-config-gen
# Generated shitty-app-supervisor.conf

Resulting shitty-app-supervisor.conf (paths reflect the actual invoking user/home/cwd):

[program:shitty-app]
command=/home/not-root/shitty-app/run.sh
directory=/home/not-root/shitty-app
process_name=%(program_name)s
numprocs=1
user=not-root

stopsignal=TERM
stopwaitsecs=10
stopasgroup=true

killasgroup=true

autostart=true
autorestart=true

redirect_stderr=true
redirect_stdout=true

stdout_logfile=/home/not-root/logs/supervisord/%(program_name)s-out.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
stderr_logfile=/home/not-root/logs/supervisord/%(program_name)s-err.log
stderr_logfile_maxbytes=50MB

For install steps and the full field reference, see references/setup.md.

相关技能

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván555 次安装18 星标

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván854 次安装69 星标

通过一次 REST API 调用,向 10 个社交平台发布视频、图片、文字与文档。

作者 victorcavero14375 次安装50 星标

按用户明确指令,在得到大脑(Get笔记)中保存、搜索并管理笔记与知识库。

作者 iswalle763 次安装66 星标

psyb0t 的更多技能

浏览全部技能

对接用户自部署的 mt5-httpapi MetaTrader 5 网关,每次涉及真实资金的写操作都必须逐笔确认后再执行。

作者 psyb0t107 次安装4 星标

面向反爬检测栈 QA 与授权测试场景的 Docker 浏览器自动化工具。

作者 psyb0t137 次安装2 星标

自托管、OpenAI 兼容的语音服务,一个容器搞定转写、翻译与合成。

作者 psyb0t13 次安装

在固定白名单的 SSH 沙箱里跑 ffmpeg、sox、ImageMagick 处理音视频和图片。

作者 psyb0t71 次安装

通过 SSH 调用 Qwen3-TTS 生成语音,支持预设音色、声音克隆与声音设计。

作者 psyb0t55 次安装

一个端点统一管控多个 IMAP/SMTP 邮箱,跨账号并行完成读取、检索、发送、标记与删除。

作者 psyb0t15 次安装