3
os.StartProcess
을 사용하여 FreeBSD 컴퓨터에서 인수로 프로세스를 시작하려고합니다. 올바른 인수를 추가하고 항상 오류가 발생하는 여러 가지 방법을 시도한 후에이 간단한 개념 증명을 설정했습니다. 여기FreeBSD에서 os.StartProcess에 인수를 추가하는 방법은 무엇입니까?
package main
import (
"log"
"os"
)
func main() {
command := "/usr/local/sbin/pkg"
args := []string{"install"}
procAttr := new(os.ProcAttr)
procAttr.Files = []*os.File{os.Stdin, os.Stdout, os.Stderr}
if process, err := os.StartProcess(command, args, procAttr); err != nil {
log.Println(err.Error())
} else {
log.Printf("%d", process.Pid)
}
}
아이디어는 시스템이 시작하면 바로 pkg
누락 인수에 대해 불평하는 것입니다, 그러나 pkg install
을 시작하면 그것은 install
명령에 대한 도움말을 제안합니다. 아래를 참조하십시오 : 나는 그것을 위의 이동 코드를 사용하는 경우
pkg: not enough arguments
Usage: pkg [-v] [-d] [-l] [-N] [-j <jail name or id>|-c <chroot path>|-r <rootdir>] [-C <configuration file>] [-R <repo config dir>] [-o var=value] [-4|-6] <command> [<args>]
For more information on available commands and options see 'pkg help'.
또는
Usage: pkg install [-AfInFMqRUy] [-r reponame] [-Cgix] <pkg-name> ...
For more information see 'pkg help install'.
는 것이다 인수 누락에 대한 불만, 왜 내 인수가 명령에 추가, 어떻게 해결하는 방법하지 '설치'입니다 내 코드?
이것은 매우 직관적입니다. 나는'os/exec'를 먼저 사용하려고했으나 매번 "오류 코드 1"을주었습니다. 나는 "인수 오류"를 의미한다고 생각했습니다. 그런 다음 소스 코드로 가서 무엇이 의미 있는지 알아 보았고'os.StartProcess'에서 끝났습니다. 아마도'os/exec'도 첫 번째 인수와 같은 이름과 다시 같은 이름을 기대할 것입니까? – Bazzz