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启动的进程如何关闭

相关阅读 >>

Go循环队列的实现

leetcode 1639 -通过给定词典构造目标字符串的方案数

Go 语言结构

10天入门Go语言教程- hello world

基于 Go 语言开发 serverless 云原生应用

舍弃python+c,salesforce将企业级软件全面迁移到Go语言

Golang判断是否目录的方法

Go基础编程:数据类型

练习笔记

leetcode131 分割回文串 Golang

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




打赏

取消

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

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

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

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

评论

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