2012-04-05 15 views
14

मुझे समझने में मदद की ज़रूरत है कि गो में प्रक्रिया को कैसे राक्षस बनाना है।गोलांग कांटा प्रक्रिया

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() 
} 

यदि आप कमांड लाइन पर यह कोड प्रारंभ करते हैं तो प्रोग्राम नियंत्रण देता है, लेकिन अभी भी cmd से जुड़ा हुआ है। सीएमडी बंद करना कार्यक्रम बंद कर देता है।

मैं इसे cmd से कैसे रद्द कर सकता हूं? जोड़ना:

procAttr.Sys.HideWindow = true 

परिणाम ऐसा गलती से हुआ: "आतंक" गलत स्मृति सूचक को

उत्तर

10

मैं 'golang-पागल' में कहा, और पता चला: इस विषय के बारे में पिछले चर्चाओं से कुछ गोलांग का एक लिंक विकल्प है:

go tool 8l -o output.exe -Hwindowsgui input.8 
3
+2

हाँ, और विचार विमर्श के कुछ उद्धृत खुला मुद्दा, http://code.google.com/p/go/issues/detail उल्लेख इसका इस्तेमाल करने में आसान है? आईडी = 227 – Sonia

2

यहां एक नकली डिमन है; https://github.com/icattlecoder/godaemon

एक उदाहरण::

package main 

import (
    _ "github.com/icattlecoder/godaemon" 
    "log" 
    "net/http" 
) 

func main() { 
    mux := http.NewServeMux() 
    mux.HandleFunc("/index", func(rw http.ResponseWriter, req *http.Request) { 
     rw.Write([]byte("hello, golang!\n")) 
    }) 
    log.Fatalln(http.ListenAndServe(":7070", mux)) 
} 
संबंधित मुद्दे