docs: CLAUDE.md 记录 server.py/cloudflared 改由 launchd 常驻及运维命令
- 说明 nohup 启动会随 Claude Code 会话回收被 SIGTERM、重启后不自起的事故原因 - 记录两个 LaunchAgent 的 label、kickstart/bootout 操作,原手工命令降级为应急参考 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -91,7 +91,8 @@ EPD_HOST=epd400a44.local python3 main.py
|
|||||||
(`git show HEAD:renderer.py > /tmp/orig/renderer.py`,切换 `sys.path` 分别 import 渲染,`ImageChops.difference(a,b).getbbox() is None`);
|
(`git show HEAD:renderer.py > /tmp/orig/renderer.py`,切换 `sys.path` 分别 import 渲染,`ImageChops.difference(a,b).getbbox() is None`);
|
||||||
六色版渲染后 `set(img.getcolors())` 必须 ⊆ `SPECTRA6`。夹具需覆盖:pct=None、≥warn 红档、≤ok 绿档、direction=None、空 candles。
|
六色版渲染后 `set(img.getcolors())` 必须 ⊆ `SPECTRA6`。夹具需覆盖:pct=None、≥warn 红档、≤ok 绿档、direction=None、空 candles。
|
||||||
- **HTML→截图逐像素核验**:`"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless=new --disable-gpu --hide-scrollbars --force-device-scale-factor=1 --window-size=800,480 --screenshot=/tmp/s.png file://…`;**勿加指向空目录的 `--user-data-dir`**(卡死到超时)。
|
- **HTML→截图逐像素核验**:`"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless=new --disable-gpu --hide-scrollbars --force-device-scale-factor=1 --window-size=800,480 --screenshot=/tmp/s.png file://…`;**勿加指向空目录的 `--user-data-dir`**(卡死到超时)。
|
||||||
- **server.py 本机运维**:启动 `nohup env -u HTTPS_PROXY -u https_proxy -u HTTP_PROXY -u http_proxy -u ALL_PROXY python3 server.py >> output/server.log 2>&1 &`;
|
- **server.py / cloudflared 常驻(2026-09-15 起走 launchd)**:`~/Library/LaunchAgents/com.jm.eink-server.plist`(vfox python 绝对路径跑 `server.py`)与 `com.jm.eink-cloudflared.plist`(`cloudflared tunnel --url http://127.0.0.1:8790 --no-autoupdate --protocol http2`),均 `RunAtLoad`+`KeepAlive`,日志仍落 `output/server.log`/`output/cloudflared.log`;机器专用、未入库。**为什么**:此前两者在 Claude Code 工具 shell 里 `nohup … &` 启动,会话回收时被同一秒 SIGTERM(2026-09-15 10:11 两进程同时退出),电脑重启后也不会自起(当天早上重启即中断)。重启/查看:`launchctl kickstart -k gui/$(id -u)/com.jm.eink-cloudflared`(隧道地址会变,需更新 SenseCraft)、`launchctl list | grep com.jm.eink`;改代码后 kickstart server 即生效。改 plist 需 `launchctl bootout gui/$(id -u)/<label>` 再 `bootstrap`。以下手工命令仅作应急参考:
|
||||||
|
- **server.py 手工启动(应急)**:`nohup env -u HTTPS_PROXY -u https_proxy -u HTTP_PROXY -u http_proxy -u ALL_PROXY python3 server.py >> output/server.log 2>&1 &`;
|
||||||
重启前按 PID 杀干净:`for p in $(lsof -nP -iTCP:8790 -sTCP:LISTEN -t); do kill $p; done`——`pkill -f` 曾漏杀,且 `*:8790` 与 `127.0.0.1:8790` 两个监听可并存、旧代码继续应答(表现为新端点 404)。
|
重启前按 PID 杀干净:`for p in $(lsof -nP -iTCP:8790 -sTCP:LISTEN -t); do kill $p; done`——`pkill -f` 曾漏杀,且 `*:8790` 与 `127.0.0.1:8790` 两个监听可并存、旧代码继续应答(表现为新端点 404)。
|
||||||
- **cloudflared 快速隧道**(免账号,地址每次重启都变,需到 SenseCraft 更新 URL):
|
- **cloudflared 快速隧道**(免账号,地址每次重启都变,需到 SenseCraft 更新 URL):
|
||||||
`nohup env -u HTTPS_PROXY -u https_proxy -u HTTP_PROXY -u http_proxy -u ALL_PROXY cloudflared tunnel --url http://127.0.0.1:8790 --no-autoupdate --protocol http2 > output/cloudflared.log 2>&1 &`,
|
`nohup env -u HTTPS_PROXY -u https_proxy -u HTTP_PROXY -u http_proxy -u ALL_PROXY cloudflared tunnel --url http://127.0.0.1:8790 --no-autoupdate --protocol http2 > output/cloudflared.log 2>&1 &`,
|
||||||
|
|||||||
Reference in New Issue
Block a user