Go에서 프로세스를 실행할 때 하위 프로세스가 완료될 때까지 기본 프로그램을 기다리거나 하위 프로세스에서 분리할 수 있습니다. 부모 프로세스. 프로세스를 분리하려면 상위 프로세스와 동일한 메모리 공간을 공유하는 새로운 프로세스를 생성하는 포크 시스템 호출을 사용해야 합니다.
다음은 Go에서 프로세스를 악마화하는 방법의 예입니다.
package main import ( "fmt" "os" "os/exec" ) func main() { // Create a new process using fork cmd := exec.Command("/Path/prog") // Hide the window for Windows OS if os.Getenv("OS") == "Windows_NT" { cmd.SysProcAttr = &os.ProcAttr{Sys: &syscall.SysProcAttr{HideWindow: true}} } // Start the process if err := cmd.Start(); err != nil { fmt.Printf("%v", err) return } // Detach the child process from the parent process if err := cmd.Process.Release(); err != nil { fmt.Printf("%v", err) return } // The parent process can now continue executing fmt.Println("Child process detached successfully") }
이 예에서는 os/exec 패키지를 사용하여 exec.Command 함수를 사용하여 새 프로세스를 생성합니다. SysProcAttr 필드는 Windows 운영 체제에 대해 HideWindow 플래그를 true로 설정하여 하위 프로세스가 백그라운드에서 실행되도록 하는 데 사용됩니다.
cmd.Start() 메서드를 사용하여 프로세스를 시작한 후 cmd.Process. Release() 메소드는 상위 프로세스에서 하위 프로세스를 분리하기 위해 호출됩니다. 이를 통해 하위 프로세스가 백그라운드에서 실행되는 동안 상위 프로세스가 계속 실행될 수 있습니다.
위 내용은 Go에서 상위 프로세스로부터 하위 프로세스를 어떻게 분리하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!