Sobes.tech
Junior — Middle

Jak można wyróżnić i uruchomić oddzielny proces w języku Go?

sobes.tech AI

Odpowiedź od AI

W języku Go do uruchomienia osobnego procesu (w rozumieniu systemu operacyjnego) używa się pakietu os/exec. Pozwala on na utworzenie i uruchomienie nowego procesu, na przykład wykonanie zewnętrznego polecenia lub programu.

Przykład uruchomienia polecenia ls -la:

package main

import (
    "fmt"
    "os/exec"
)

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

Jeśli chodzi o równoległe wykonywanie kodu wewnątrz programu, w Go używa się goroutines (go func() { ... }()). Jednak goroutine nie jest osobnym procesem, lecz lekkim wątkiem w obrębie jednego procesu.

Dlatego, aby zarezerwować i uruchomić osobny proces, należy użyć os/exec.