Если у меня есть PID процесса, достаточно os.FindProcess, чтобы проверить существующий процесс? Я имею в виду, если он вернется err
могу ли я предположить, что он прекращен (или убит)?Проверьте, существует ли процесс в пути
Edit:
Я только написал функцию обертки вокруг 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
}
Thats it! Спасибо за показ Go way :) –
Зачем вы разбираетесь в 'int64'. Не будет ли «Atoi» лучше (нет преобразования типа в «FindProcess»)? – tjameson
Да, вы правы, «Атои» будет лучше. Наверное, я использовал 'ParseInt' совсем недавно и забыл об этом! –