替换当前进程

kol*_*rie 13 process go

在Ruby中,您可以使用Kernel.exec将当前正在执行的进程替换为触发的进程.

在Go中可以做同样的事情吗?

per*_*eal 14

这与Kernel.exec相同:

package main

import "fmt"
import "syscall"

func main() {
    if err := syscall.Exec("/bin/ls", []string{"ls", "-l"}, []string{}); err != nil {
      fmt.Println(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

但它不是便携式IFAIK.

  • 我从 C 编程中知道这一点,请参阅:http://linux.die.net/man/2/execve,“按照惯例,这些字符串中的第一个应该包含与正在执行的文件关联的文件名......”。 (2认同)