Junior — Middle
Kuidas eraldada ja käivitada eraldi protsess Go keeles?
sobes.tech AI
Vastus AI-lt
Go keeles, et eraldi protsessi (operatsioonisüsteemi mõistes) käivitamiseks kasutatakse paketti os/exec. Selle abil saab luua ja käivitada uue protsessi, näiteks täita välise käsu või programmi.
Näide käsu ls -la käivitamisest:
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-la")
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println("Viga:", err)
return
}
fmt.Println(string(output))
}
Kui jutt käib koodi paralleelsest täitmisest programmi sees, siis Go-s kasutatakse goroutine'e (go func() { ... }()). Kuid goroutine ei ole eraldi protsess, vaid kerge voog ühe protsessi sees.
Seetõttu, et reserveerida ja käivitada eraldi protsess, tuleb kasutada os/exec.