Я запускаю приложение Go в среде Debian. Все мои разработки были выполнены на OSX, и все прошло отлично, но у меня возникла проблема с запуском команды на оболочке из кода Go.exec не работает команда из приложения Golang
cmdName := "cwebp"
cmdArgs := []string{srcPath, "-o", dstPath}
log.Printf("Executing %s : %+v", cmdName, cmdArgs)
cmd := exec.Command(cmdName, cmdArgs...)
_, err := cmd.StdoutPipe()
if err != nil {
log.Printf("Error: %s", err)
}
err = cmd.Run()
if err != nil {
log.Printf("Error: %s", err)
}
Процесс приложения выполняется от пользователя root, и команда отлично работает, когда я запускаю его из оболочки.
Раньше я думал, что столкнулся с проблемой из-за неправильной переменной среды PATH. При печати перед запуском команды я получаю правильный путь. Более того, я попытался использовать LookPath и получил правильный путь как /usr/local/bin/cwebp
.