How to fork-Prozess
Ich brauche Hilfe zu verstehen, wie zu dämonisieren einen Prozess Gehen.
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()
}
Wenn Sie beginnen, diesen code auf der Kommandozeile das Programm gibt die Kontrolle, aber immer noch in Verbindung mit cmd. Schließen Sie die cmd schliesst sich das Programm.
Wie kann ich das entkoppeln, es aus der cmd? Hinzufügen:
procAttr.Sys.HideWindow = true
Dieser Fehler führt: "Panik" zu falschen Speicher Zeiger
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fragte ich in "golang-nuts', und fand heraus, dass golang hat eine link-option:
AFAIK Gehen die noch nicht vollständig unterstützen, schreiben wahre Dämonen in Gehen. Einige der bisherigen Diskussionen zu diesem Thema:
https://groups.google.com/d/topic/golang-nuts/KynZO5BQGks/discussion
https://groups.google.com/d/topic/golang-nuts/1bF39FuX-48/discussion
https://groups.google.com/d/topic/golang-nuts/0P_kErKUCEU/discussion
https://groups.google.com/d/topic/golang-nuts/BSvqvyOqX-I/discussion
https://groups.google.com/d/topic/golang-nuts/H6d-3UfAa1A/discussion
Hier ist ein fake-daemon in go, es ist einfach zu bedienen: https://github.com/icattlecoder/godaemon
Beispiel: