[TIPS] Undefined: syscall.Kill on Windows
Contents
Undefined: syscall.Kill on Windows
最近在 Windows10 下开发 Go 的守护进程,在做命令重启的时候用到了 syscall.Kill 这个函数,编译报错。IDE 显示 Kill 函数红色,查阅了 Go doc 确实存在有 Kill 函数,清除缓存和重启IDE 都无果。 原来是 syscall 包跟操作系统有关,syscall.Kill 只支持 Unix/Linux/Mac 系统,不支持 Windows 系统。
之前的代码如下:
if err := syscall.Kill(pid, syscall.SIGTERM); err != nil {
return err
} // Mac/Linux 的写法
修改成如下 调用 os 包
pro, err := os.FindProcess(pid)
if err != nil {
return err
}
err = pro.Kill()
if err != nil {
return err
} // Windows的写法