Skip to content

Instantly share code, notes, and snippets.

@darwis059
Forked from lee8oi/startProcess.go
Created October 14, 2020 08:23
Show Gist options
  • Select an option

  • Save darwis059/232037046bbba21ce65778079b8f11b5 to your computer and use it in GitHub Desktop.

Select an option

Save darwis059/232037046bbba21ce65778079b8f11b5 to your computer and use it in GitHub Desktop.
Using os.StartProcess() in Go for platform-independent system command execution.
package main
import (
"os"
"os/exec"
)
func Start(args ...string) (p *os.Process, err error) {
if args[0], err = exec.LookPath(args[0]); err == nil {
var procAttr os.ProcAttr
procAttr.Files = []*os.File{os.Stdin,
os.Stdout, os.Stderr}
p, err := os.StartProcess(args[0], args, &procAttr)
if err == nil {
return p, nil
}
}
return nil, err
}
func main() {
if proc, err := Start("ping", "-c 3", "www.google.com"); err == nil {
proc.Wait()
}
if proc, err := Start("zsh"); err == nil {
proc.Wait()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment