# background-process > Housekeeping guide for background process tools. You SHOULD load this skill before launching background processes to avoid stale processes, port conflicts, and buffer issues. Examples: - user: "Start the dev server" → load skill, then launch with proper cleanup practices - user: "Run npm run dev" → load skill to verify startup and use meaningful IDs - user: "What background processes have we launched?" → check for duplicate processes, port conflicts - Author: Howaboua - Repository: IgorWarzocha/opencode-background-process - Version: 20260203192717 - Stars: 3 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/IgorWarzocha/opencode-background-process - Web: https://mule.run/skillshub/@@IgorWarzocha/opencode-background-process~background-process:20260203192717 --- --- name: background-process description: |- Housekeeping guide for background process tools. You SHOULD load this skill before launching background processes to avoid stale processes, port conflicts, and buffer issues. Examples: - user: "Start the dev server" → load skill, then launch with proper cleanup practices - user: "Run npm run dev" → load skill to verify startup and use meaningful IDs - user: "What background processes have we launched?" → check for duplicate processes, port conflicts --- # Background Process Best Practices ## Keep the Process List Clean - Kill processes when done - don't leave stale servers running - Use `background_process_cleanup` periodically to remove exited processes - Before launching, check `background_process_list` to avoid duplicates - Use `remove: true` when killing to clean up in one step ## Verify Startup After launching, wait before reading output - servers need time to start: 1. Launch the process 2. Sleep at least 30 seconds (use bash `sleep` or just wait before next action) 3. `background_process_read` to confirm startup 4. If output is empty or incomplete, wait longer and re-read Look for: "listening on", "ready", "started" - or errors like port conflicts ## Use Meaningful IDs When running multiple processes, set custom `id` for clarity: - `id: "frontend"` and `id: "backend"` instead of `vite-1`, `node-2` - Makes kill/read commands unambiguous ## When to Use Each Signal | Signal | Use When | |--------|----------| | SIGTERM (default) | Normal shutdown - gives process time to cleanup | | SIGINT | Simulate Ctrl+C - some processes handle this differently | | SIGKILL | Process won't die with SIGTERM - force kill | - Processes persist for the session - they don't auto-cleanup on conversation end - Output buffer is limited (500 lines default) - increase `maxOutputLines` for verbose builds - stderr is prefixed with `[stderr]` in output - helps distinguish errors