golang执行linux后台命令-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

golang执行linux后台命令

2016-06-28 15:08:45 3081 3

前提:
我想通过golang执行linux命令启动一个类似tomcat这样的服务器

问题:
golang可以实现执行命令并启动服务,但是当我把golang关掉的时候,已经启动的服务也会相应关闭,不知道是通过什么方法将两者的关联去掉,即我关闭golang不会关闭通过golang启动的服务。

多谢各位高手了!

取消 提交回答
全部回答(3)
  • 大喵Schnitzel
    2019-07-17 19:48:23

    nohup ./app &

    0 0
  • 0无关风月0
    2019-07-17 19:48:23

    示例:

    package main
    
    import (
        "fmt"
        "os/exec"
        "strings"
    )
    
    func generateBgCmd(name string, arg ...string) string {
        cmdString := fmt.Sprintf(
            "nohup %s %s &",
            name,
            strings.Join(arg, " "),
        )
    
        return cmdString
    }
    
    func main() {
        cmd := exec.Command("/bin/bash", "-c", generateBgCmd("ping", "baidu.com", ">", "/tmp/ping.log"))
        err := cmd.Start()
        fmt.Println("err:", err)
    }
    0 0
  • a123456678
    2019-07-17 19:48:23

    golang执行另外一个程序的时候,比如执行程序B,默认是作为B的父进程启动B的,你可以ps -ef看下父子关系。
    所以你要做的是,让新启动的B进程父进程为1号进程,方法为

    runuser -l root -c "程序 参数 2>&1 &"
    后面的“2>&1 &”不要动,前面的程序和参数替换实际运行的即可

    0 0
添加回答
相关问答

1

回答

golang执行linux后台命令

2016-06-24 10:48:27 1588浏览量 回答数 1

1

回答

使用 Go 语言实现方法代理的思路有哪几种?

2022-09-15 17:44:08 64浏览量 回答数 1

1

回答

Go 语言中有继承语法吗?

2022-09-15 16:39:04 65浏览量 回答数 1

1

回答

Go 语言中定义类的成员函数方法有什么特点?

2022-09-15 16:39:04 64浏览量 回答数 1

1

回答

与class相对应,在Go语言中用什么来表示类?

2022-09-15 16:38:33 65浏览量 回答数 1

1

回答

Go 语言中函数有哪些使用规则和特点?

2022-09-15 16:38:32 64浏览量 回答数 1

2

回答

为什么我不会舍弃python投奔go语言

2018-05-10 20:10:32 1190浏览量 回答数 2

2

回答

go语言怎样把json格式的数据发给前端jquery处理?

2016-07-08 14:48:42 2620浏览量 回答数 2

1

回答

为什么c++程序员不改用go语言?

2016-03-04 09:33:06 2939浏览量 回答数 1

3

回答

大家如何看go语言

2015-11-27 09:36:24 5540浏览量 回答数 3
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载