プロセスの PID を持っている場合、プロセスの存在をテストするにはos.FindProcessで十分ですか? つまり、それが戻ってきた場合、それはerr
終了した (または殺された) と見なすことができますか?
編集:
ラッパー関数を書きましたkill -s 0
(古いスタイルの bash プロセス テスト)。これは問題なく動作しますが、この問題に対する他の解決策 (go ライブラリを使用) がある場合は、まだ満足しています。
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
}