OpenAI's Self-Hosted Executor Only Dials Out. So Does Our Daemon, Which Is Why the Stop Button We Added Today Is a Queue
说明与用途
自托管执行器和守护进程仅主动连接服务器,无法从 UI 停止会话。新增 "Stop" 按钮,验证所有者后将 kill 命令排队,守护进程随后执行 SIGTERM/SIGKILL。
问题
Self‑hosted executors and daemons only initiate outbound connections, so there is no built‑in way to stop a running session from the web UI.
结果
Adding a stop button provides a safe, owner‑controlled way to terminate remote sessions without opening inbound ports, while keeping the outbound‑only design intact.
工作流
- 1. User clicks "Stop" on the session UI.
- 2. Client sends POST /api/commands with kind=kill.
- 3. Server verifies ownership, writes audit entry, resolves target device, checks daemon online, queues command or returns 409.
- 4. Daemon polls /api/agent/commands every 2s.
- 5. Daemon receives kill command, runs "shell kill
<id>", which sends SIGTERM then SIGKILL to the session process group. - 6. Daemon posts completion; server deletes session row.
证据
Pressing Stop sends a POST to /api/commands with kind kill.
The daemon refuses to start unless the machine was signed in with shell login --allow-remote-start.
- 记录日期: 2026-09-17T00:00:30.669Z