2014-10-14 3 views
1

golang 라이브러리 함수 os.StartProcess()은 하위 프로세스에서 포크 후에 setpgid(0,0)을 호출합니다. 여기Go에서 os.StartProcess가 하위 프로세스 그룹 id를 하위 pid와 동일하게 설정하는 이유

그것은 "리눅스"와 "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 재단 라이브러리 NSTask - (void)launch 방법은 같은 일 (미등록)한다는 것을 과거에 나타났습니다. 그 당시에는 프로세스 트리를 관리하기가 더 어려워 지므로 성가신 것처럼 보였습니다.

자동으로 이렇게하는 라이브러리의 이점은 무엇입니까?

+0

[메일 링리스트] (https://groups.google.com/forum/#!forum/golang-nuts)에서이 질문을 검토해보십시오. - 자주 사용하지 않습니다. 하드 코어에 의해 devs, 불행히도, 그래서 당신은 더 나은 운이있을 수도 있습니다. – kostix

답변

1

짧은 대답은 그렇지 않다는 것입니다. attr.Sys.Setpgid가 true 인 경우에만 그룹을 변경합니다. 이것은 시스템의 API와 기능 상 일치하는 것입니다. 모든 OS에 대한 옵션이 아닙니다.