Cómo bifurcar un proceso

Necesito ayuda para entender cómo demonizar un proceso en Go.

<code>package main

import (
   "fmt"
   "os"
)

func start() {
   var procAttr os.ProcAttr 
   procAttr.Files = []*os.File{nil, nil, nil}
   _, err := os.StartProcess("/Path/prog", nil, &procAttr)
   if err != nil {
       fmt.Printf("%v", err)
   }
}


func main () {
   start()
} 
</code>

Si inicia este código en la línea de comandos, el programa devuelve el control, pero aún está conectado con cmd. Al cerrar el cmd se cierra el programa.

¿Cómo puedo desacoplarlo del cmd? Añadiendo:

<code>procAttr.Sys.HideWindow = true
</code>

Resultados en este error: "pánico" al puntero de memoria incorrecto

Respuestas a la pregunta(3)

Su respuesta a la pregunta