---
name: process_handle
lang: go
domain: infra
version: "1.0.0"
algebraic: product
definition: |
  type ProcessHandle struct {
      Cmd       *exec.Cmd
      Pid       int
      StartTime time.Time
      Dir       string
      stdout    io.ReadCloser
      stderr    io.ReadCloser
  }
description: "Handle de un subproceso en ejecucion. Contiene el comando, PID, tiempo de inicio, directorio de trabajo y los pipes de stdout/stderr (privados, leidos internamente por ProcessWait)."
tags: [process, subprocess, handle, infra, exec]
uses_types: []
file_path: "functions/infra/process_handle.go"
---

## Notas

Tipo producto. Los campos stdout y stderr son privados para evitar lecturas concurrentes externas — ProcessWait los consume internamente. Cmd.SysProcAttr.Setpgid=true garantiza que ProcessKill puede matar el process group completo usando -Pid.
