Files
kandev/docs/plans/task-runtime-cleanup/task-03-agentctl-process-group-shutdown.md
T
2026-08-23 17:34:52 +00:00

56 lines
1.6 KiB
Markdown

---
id: "03-agentctl-process-group-shutdown"
title: "Agentctl process group shutdown"
status: completed
wave: 2
depends_on: []
plan: "plan.md"
spec: "../../specs/tasks/system-design/runtime-cleanup.md"
---
# Task 03: Agentctl Process Group Shutdown
## Acceptance
- Agentctl instance shutdown cannot leave an ACP subprocess group reparented to
PID 1.
- Processes that ignore stdin EOF are killed by process group after the stop
timeout.
- Regression tests prove child processes are reaped on Unix.
## Verification
```bash
cd apps/backend && go test ./internal/agentctl/server/process
```
## Files likely touched
- `apps/backend/internal/agentctl/server/process/manager.go`
- `apps/backend/internal/agentctl/server/process/procattr_unix.go`
- `apps/backend/internal/agentctl/server/process/manager_test.go`
- `apps/backend/internal/agentctl/server/process/testmain_test.go`
## Dependencies
None. Can run in parallel with Task 01/02 because it is isolated to agentctl
process shutdown.
## Inputs
- Existing process group setup and `waitForProcessExit` in `process.Manager`
- Spec failure mode: ACP children must not survive agentctl shutdown
## Output contract
Report shutdown behavior, Unix-only guards if added, tests run, and any platform
differences that remain.
## Result
- Existing Linux process attributes already start agentctl children in their own
process group with parent-death signaling.
- Existing process manager coverage already verifies process-group kill on stop
timeout.
- Verified with `go test ./internal/agentctl/server/process ./internal/agentctl/server/instance`.