golang库函数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
方法执行相同的操作(未记录)。当时看起来像是一种烦恼,因为它更难以管理流程树。
这些库自动执行此操作有什么好处?
答案 0 :(得分:1)
简短的回答是它没有。如果attr.Sys.Setpgid为true,它只会更改组。这是与系统的API具有功能奇偶校验。它甚至不是所有操作系统的选项