登录
首页 >  Golang >  Go问答

golang程序退出后如何保持子进程运行?

来源:Golang技术栈

时间:2023-04-15 16:04:38 123浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《golang程序退出后如何保持子进程运行?》,文章讲解的知识点主要包括golang,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我注意到使用创建的子进程Start()将在程序退出后终止,例如:

package main

import "os/exec"

func main() {
    cmd := exec.Command("sh", "test.sh")
    cmd.Start()
}

main()退出时,test.sh将停止运行

正确答案

子进程应该在你的进程结束后继续运行,只要它干净地结束,如果你点击^C. 您可以做的是拦截发送到您的进程的信号,以便您可以干净地结束。

sigchan := make(chan os.Signal, 1)
signal.Notify(sigchan,
    syscall.SIGINT,
    syscall.SIGKILL,
    syscall.SIGTERM,
    syscall.SIGQUIT)
go func() {
    s := 

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《golang程序退出后如何保持子进程运行?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>