[go] go 언어의 exec 패키지를 사용하여 프로세스 감시하는 방법

Go 언어를 사용하여 프로세스를 실행하고 그 상태를 감시하는 것은 매우 중요한 작업일 수 있습니다. exec 패키지를 사용하여 외부 프로그램을 실행할 때 이를 감시할 수 있습니다. 이번 블로그에서는 Go 언어의 exec 패키지를 사용하여 프로세스를 실행하고 감시하는 방법에 대해 알아보겠습니다.

exec 패키지 소개

exec 패키지는 외부 명령이나 프로그램을 실행하는 데 사용됩니다. 이 패키지를 사용하여 프로세스를 실행하고 감시할 수 있습니다.

package main

import (
	"fmt"
	"log"
	"os/exec"
)

func main() {
	cmd := exec.Command("ls", "-l")
	err := cmd.Run()
	if err != nil {
		log.Fatal(err)
	}
}

위의 예제에서는 exec 패키지를 사용하여 “ls -l” 명령을 실행하고 있습니다.

프로세스 감시

프로세스를 실행한 후에는 해당 프로세스의 상태를 주기적으로 감시할 수 있습니다. 감시에 사용되는 주요 메서드는 ProcessState 구조체의 메서드인 ExitCode()Exited() 입니다.

package main

import (
	"fmt"
	"log"
	"os/exec"
)

func main() {
	cmd := exec.Command("ls", "-l")
	err := cmd.Run()
	if err != nil {
		log.Fatal(err)
	}

	state := cmd.ProcessState
	if state.Exited() {
		fmt.Println("프로세스가 종료되었습니다. 종료 코드:", state.ExitCode())
	}
}

결론

Go 언어의 exec 패키지를 사용하여 프로세스를 실행하고 감시하는 방법을 살펴보았습니다. 이를 통해 외부 프로그램을 실행하고 해당 프로세스의 상태를 감시할 수 있는 방법에 대해 이해할 수 있습니다.

더 많은 정보를 원하신다면 공식 Go 언어 문서를 참고해보세요.