[go] go 언어에서의 시스템 명령 및 인증 실행을 위한 os 패키지 활용

Go 언어는 시스템 명령을 실행하고 외부 프로그램을 호출하기 위한 다양한 기능을 제공합니다. 이번 포스트에서는 Go 언어에서 시스템 명령 실행과 인증 실행을 위한 os 패키지의 활용에 대해 살펴보겠습니다.

시스템 명령 실행

Go 언어에서 시스템 명령을 실행하기 위해서는 os/exec 패키지를 활용할 수 있습니다.

다음은 간단한 시스템 명령을 실행하는 Go 코드의 예시입니다.

package main

import (
	"fmt"
	"os/exec"
)

func main() {
	cmd := exec.Command("ls", "-l")
	stdout, err := cmd.Output()
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	fmt.Print(string(stdout))
}

위 코드에서 exec.Command 함수를 사용하여 ‘ls -l’ 명령을 실행하고 그 결과를 반환받아 출력합니다.

인증 실행

시스템 명령을 실행할 때 권한을 요구하는 경우, Go 언어에서는 os/exec 패키지를 사용하여 해당 명령을 실행할 수 있습니다.

다음은 관리자 권한이 필요한 명령을 실행하는 Go 코드의 예시입니다.

package main

import (
	"fmt"
	"os/exec"
)

func main() {
	cmd := exec.Command("sudo", "service", "nginx", "restart")
	cmd.Stdin = os.Stdin
	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr
	err := cmd.Run()
	if err != nil {
		fmt.Println(err.Error())
		return
	}
}

위 코드에서 exec.Command 함수를 사용하여 ‘sudo service nginx restart’ 명령을 실행하고, cmd.Stdin, cmd.Stdout, cmd.Stderr를 설정하여 인증 실행을 처리하고 있습니다.

위와 같이 os/exec 패키지를 활용하여 시스템 명령 실행 및 인증 실행을 쉽게 처리할 수 있습니다.

더 많은 정보는 Go 공식 문서를 참고하시기 바랍니다.