Sobes.tech
Junior — Middle

Cum se poate evidenția și porni un proces separat în limbajul Go?

sobes.tech AI

Răspuns de la AI

În Go, pentru a porni un proces separat (în sensul sistemului de operare), se folosește pachetul os/exec. Cu acesta, se poate crea și porni un proces nou, de exemplu, executarea unei comenzi externe sau a unui program.

Exemplu de rulare a comenzii ls -la:

package main

import (
    "fmt"
    "os/exec"
)

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

Dacă vorbim despre executarea paralelă a codului în interiorul programului, în Go se folosesc goroutine-urile (go func() { ... }()). Dar o goroutine nu este un proces separat, ci un fir de execuție ușor în interiorul unui proces.

Prin urmare, pentru rezervarea și pornirea unui proces separat, trebuie folosit os/exec.