직전의 예제에서 우리는 외부 프로세스를 생성하는 법을 봤습니다. 우리는 실행되고 있는 Go 프로세스에서 외부 프로세스에 접근해야 할 때 프로세스를 생성합니다. 가끔, 우리는 그냥 프로세스 전체를 다른 프로세스로 대체하고싶을 때가 있습니다. 이를 위해서, 우리는 Go의 |
|
package main
|
|
import "syscall"
import "os"
import "os/exec"
|
|
func main() {
|
|
우리의 예제에서는 |
binary, lookErr := exec.LookPath("ls")
if lookErr != nil {
panic(lookErr)
}
|
|
args := []string{"ls", "-a", "-l", "-h"}
|
|
env := os.Environ()
|
여기서 |
execErr := syscall.Exec(binary, args, env)
if execErr != nil {
panic(execErr)
}
}
|
프로그램을 실행시키면 프로그램은 |
$ go run execing-processes.go
total 16
drwxr-xr-x 4 mark 136B Oct 3 16:29 .
drwxr-xr-x 91 mark 3.0K Oct 3 12:50 ..
-rw-r--r-- 1 mark 1.3K Oct 3 16:28 execing-processes.go
|
Go가 고전 Unix의 |
다음 예제: 시그널.