Run external command without os/exec

523 Views Asked by At

I'm using TinyGo to build for an ARM-based Linux system that has limited resources. I'm trying to invoke a few other processes from my program, e.g. killall:

exec.Command("killall", "someproc").Start()

However, this results in a bunch of errors (Process not declared by package os) and indeed os/exec isn't supported by TinyGo.

Is there a way to invoke shell commands from Go without using os/exec? My first thought was to use Cgo, but this also doesn't seem to work with TinyGo:

// #include <unistd.h>
import "C"

func main() {
    C.fork()
    // exec etc.
}

While it works fine Go, I'm getting a linker error when using TinyGo (error: undefined symbol: fork). Is there a library that I need to link to get fork() and other system calls? Is there any alternative way to simply invoke a shell command from Go?

0

There are 0 best solutions below