Golang 创建子进程 - 使用 os.StartProcess
在 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 函数来获取进程对象。
原文地址: https://www.cveoy.top/t/topic/kUhc 著作权归作者所有。请勿转载和采集!