概要
exec.Command
で Start
した場合、そのまま Kill
を呼べれば良いですが処理が終了する場合は呼べません
そんな場合には pid からプロセスを生成し kill しましょう
環境
- macOS 10.14.6
- go 1.12.9
サンプルコード
os.FindProcess(pid)
で新規にプロセスを生成できます
あとはこれの Kill()
関数をコールするだけです
package main
import (
"fmt"
"os"
"os/exec"
)
func main() {
cmd := exec.Command("sleep", "100")
err := cmd.Start()
pid := cmd.Process.Pid
fmt.Println(pid)
if err != nil {
fmt.Println(err)
return
}
process, err := os.FindProcess(pid)
if err != nil {
fmt.Println(err)
return
}
err = process.Kill()
if err != nil {
fmt.Println(err)
return
}
cmd.Wait()
}
0 件のコメント:
コメントを投稿