摘自:https://www.jb51.net/article/249001.htm
func System_CmdCombinedOutput(cmd_line string) ([]byte, error) { mutex_exec.Lock() defer mutex_exec.Unlock() // old_handler := C.set_SIGCHLD_DFL() // 自己实现, 用c语言保存当前的信号屏蔽字 // defer C.set_SIGCHLD_old(old_handler) // 自己实现, 用c语言恢复之前的信号屏蔽字 cmd := exec.Command("bash", "-c", cmd_line) output, err := cmd.CombinedOutput() return output, err } func System_CmdRun(cmd_line string) error { mutex_exec.Lock() defer mutex_exec.Unlock() // old_handler := C.set_SIGCHLD_DFL() // 自己实现, 用c语言保存当前的信号屏蔽字 // defer C.set_SIGCHLD_old(old_handler) // 自己实现, 用c语言恢复之前的信号屏蔽字 cmd := exec.Command("bash", "-c", cmd_line) err := cmd.Run() return err }
// main.go func main() { output, err := System_CmdCombinedOutput("ps -elf | grep xxx") fmt.Println(string(output)) output, err := System_CmdRun("tcpdump -i any '((udp and (port 6886)) or (sctp))' -C 200 -Z root -z gzip -w /var/xx/lmt_dump_20240313095959.pcap") fmt.Println(string(output)) }
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。