golang 的Command启动的进程如何关闭


本文摘自网络,作者,侵删。

在用exec包调用的其他进程后如何关闭结束,可以使用context包的机制进行管理,context包的使用详见:https://godoc.org/context

exec.CommandContext方发实现了context,通过context可以对exec启动的进程结束。

隐藏程序自身黑窗口的方法:go build -ldflags="-H Windows/">windows"

隐藏子进程黑窗口的方法:

cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}

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()
}

本文来自:简书

感谢作者:梅_苇名一心

查看原文:golang 的Command启动的进程如何关闭

相关阅读 >>

聊聊dapr的consistent hash

[系列] - 使用 Go modules 包管理工具(一)

Golang四舍五入保留两位小数

安装Go语言支持及Gogs版本管理工具

测试平台(序)

Golang中使用json时区分空字段和未设置字段的方法

Go - 统一定义 api 错误码

Golang 如何类型转换

Golang程序设计——数据容器

Go好用的类型转换第三方组件

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...