Sobes.tech
Junior — Middle

Jak lze v jazyce Go vyčlenit a spustit samostatný proces?

sobes.tech AI

Odpověď od AI

V jazyce Go se pro spuštění samostatného procesu (z pohledu operačního systému) používá balíček os/exec. S jeho pomocí lze vytvořit a spustit nový proces, například spustit externí příkaz nebo program.

Příklad spuštění příkazu ls -la:

package main

import (
    "fmt"
    "os/exec"
)

func main() {
    cmd := exec.Command("ls", "-la")
    output, err := cmd.CombinedOutput()
    if err != nil {
        fmt.Println("Chyba:", err)
        return
    }
    fmt.Println(string(output))
}

Pokud se jedná o paralelní provádění kódu uvnitř programu, v jazyce Go se používají gorutiny (go func() { ... }()). Ale gorutina není samostatný proces, je to lehký vlákno uvnitř jednoho procesu.

Proto je třeba pro rezervaci a spuštění samostatného procesu použít os/exec.