[小技巧]golang 通过exec Command启动的进程如何关闭的解决办法
在用exec包调用的其他进程后如何关闭结束,可以使用context包的机制进行管理,context包的使用详见:https://godoc.org/context
隐藏程序自身黑窗口的方法: 隐藏子进程黑窗口的方法:
package main
import (
"context"
"fmt"
"os"
"os/exec"
"syscall"
"time"
)
func main() {
ctx,cancel := context.WithCancel(context.Background())
cmd := exec.CommandContext(ctx,"./b")
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
cmd.Stdout = os.Stdout
cmd.Start()
time.Sleep(10 * time.Second)
fmt.Println("退出程序中...",cmd.Process.Pid)
cancel()
cmd.Wait()
}
转自:http://mp.weixin.qq.com/s?__biz=MzAxMzc4Mzk1Mw==&mid=2649836709&idx=1&sn=dc1eb9d75e544ca1b6e98c464fc73265&chksm=8398aa5bb4ef234d732b6e8a8f48c07520329ed3ff0e657dccb3c90af5b44e3dfb0749ef2a34&mpshare=1&scene=1&srcid=1031BJbRDke2YHPGja6cFTHR#rd (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |