ပြီးခဲ့တဲ့ဥပမာမှာ ကျွန်တော်တို့က ပြင်ပလုပ်ငန်းစဉ်တွေကို စတင်ခြင်း (spawning external processes) ကိုကြည့်ခဲ့ပါတယ်။
ဒါကို ကျွန်တော်တို့က လက်ရှိအလုပ်လုပ်နေတဲ့ Go process ကနေ ပြင်ပလုပ်ငန်းစဉ်တွေကို အသုံးပြုဖို့လိုအပ်တဲ့အခါ လုပ်ဆောင်ပါတယ်။
တစ်ခါတစ်ရံမှာ ကျွန်တော်တို့က လက်ရှိ Go process ကို အခြားတစ်ခု (Go မဟုတ်တာလည်းဖြစ်နိုင်တယ်) နဲ့ လုံးဝအစားထိုးချင်တာမျိုးရှိပါတယ်။
ဒါကိုလုပ်ဖို့အတွက် Go ရဲ့ ဂန္ထဝင်ဖြစ်တဲ့
|
|
package main |
|
import ( "os" "os/exec" "syscall" ) |
|
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) } } |
ကျွန်တော်တို့ program ကို run တဲ့အခါ
အဲဒါကို |
$ 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 |
နောက်ဥပမာ: Signals.