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

相关阅读 >>

python和Go语言有什么区别

beeGo-vue-admin基于当前流行技术组合的前后端rbac管理系统:Go1.15.x+beeGo2.x+jwt+redis+mysql8+vue 的前后端分离系统,权限控制采用 rbac,支持

Go 语言入门系列:数组的使用

Golang基础数据类型-浮点型

[Go-linq]-Go的.net linq式查询方法

聊聊Golang的ddd项目结构

Golang 创建型设计模式 建造者模式

教你用Golang实现直播和点播功能

有没有发现Go 1.17将允许切片转换为数组指针啦?

Golang 架构设计原则 依赖倒置原则

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




打赏

取消

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

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

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

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

评论

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