在 Go 语言中,可以使用 os 包中的 StartProcess 函数来创建一个新的进程。下面是一个简单的示例:

package main

import (
    "fmt"
    "os"
)

func main() {
    cmd := "/bin/ls"
    args := []string{" -l", "/tmp"}
    env := os.Environ()

    procAttr := &os.ProcAttr{
        Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},
        Env:   env,
    }

    pid, err := os.StartProcess(cmd, args, procAttr)
    if err != nil {
        fmt.Printf("Error starting process: %s\n", err)
        return
    }

    fmt.Printf("New process started with PID %d\n", pid)
}

在上面的示例中,我们使用了 StartProcess 函数来启动一个 ls 命令,并传入了两个参数:-l/tmp。我们还设置了进程的标准输入、输出和错误输出,以及环境变量。最后,我们打印出了新进程的 PID。

需要注意的是,StartProcess 函数会返回一个进程的 PID,而不是一个进程对象。如果需要与新进程进行交互,可以使用 os.FindProcess 函数来获取进程对象。

Golang 创建子进程 - 使用 os.StartProcess

原文地址: https://www.cveoy.top/t/topic/kUhc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录