2

golang 库函数在 fork 后在子进程中os.StartProcess()调用。setpgid(0,0)

它在“linux”和“bsd”配置上执行此操作,来源:http: //golang.org/src/pkg/syscall/exec_bsd.go? h =SYS_SETPGID# L105 http://golang.org/src/ pkg/syscall/exec_linux.go?h=SYS_SETPGID#L117

我过去注意到 OSX Foundation 库NSTask - (void)launch方法做同样的事情(未记录)。当时这似乎很烦人,因为它使管理流程树变得更加困难。

这些库自动执行此操作有什么好处?

4

1 回答 1

1

简短的回答是它没有。如果 attr.Sys.Setpgid 为真,它只会更改组。这是为了与系统的 API 具有相同的功能。它甚至不是所有操作系统的选项

于 2014-10-14T07:19:16.717 回答