पर कोई प्रक्रिया मौजूद है या नहीं, यदि मेरे पास प्रक्रिया की पीआईडी है, तो os.FindProcess प्रक्रिया के मौजूदा परीक्षण के लिए पर्याप्त है? मेरा मतलब है कि अगर यह err
देता है तो क्या मुझे लगता है कि इसे समाप्त कर दिया गया है (या मारा गया)?जांचें कि
संपादित करें:
मैं सिर्फ एक आवरण समारोह के आसपास kill -s 0
(पुरानी शैली बैश प्रक्रिया परीक्षण) ने लिखा है। यह किसी भी समस्या के बिना काम करता है, लेकिन मैं अभी भी खुश हूँ अगर वहाँ अन्य समाधान इस समस्या .:
func checkPid(pid int) bool {
out, err := exec.Command("kill", "-s", "0", strconv.Itoa(pid)).CombinedOutput()
if err != nil {
log.Println(err)
}
if string(out) == "" {
return true // pid exist
}
return false
}
यह बात है! गो रास्ता दिखाने के लिए धन्यवाद :) –
आप 'int64' में क्यों पार्स कर रहे हैं। 'एटोई' बेहतर नहीं होगा ('FindProcess'' में कोई प्रकार परिवर्तित नहीं होगा? – tjameson
हाँ आप सही हैं 'एटोई' बेहतर होगा। मुझे लगता है कि मैंने हाल ही में 'ParseInt' का उपयोग किया और इसके बारे में भूल गया! –