golang,再也不用管道了,exec.Command("bash", "-c", "ps -elf | grep xxx")

摘自: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))

}
复制代码

 

posted @   LiuYanYGZ  阅读(58)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示