golang 执行外部命令 超时处理 exec.CommandContext
使用exec.CommandContext来处理外部命令的超时
func main() {timeout := 5ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout+5)*time.Second)defer cancel()cmdarray := []string{"-c", fmt.Sprintf("%s %s", "sleep", "10")}cmd := exec.CommandContext(ctx, "bash", cmdarray...)out, err := cmd.CombinedOutput()//if ctx.Err() == context.DeadlineExceeded {}fmt.Printf("ctx.Err : [%v]\n", ctx.Err())fmt.Printf("error : [%v]\n", err)fmt.Printf("out : [%s]\n", string(out))
}
运行结果是:
ctx.Err : [context deadline exceeded]
error : [signal: killed]
out : []
如果是一个命令错误输出是什么:
下面这个例子是使用sleep不带参数,显示是错误的。
cmdarray := []string{"-c", fmt.Sprintf("%s %s", "sleep", "")}
ctx.Err : [<nil>]
error : [exit status 1]
out : [usage: sleep seconds
]
可以命令的执行错误不会导致ctx.Err()错误。
golang 执行外部命令 超时处理 exec.CommandContext相关推荐
- Go 学习笔记(43)— Go 标准库之 os/exec(执行外部命令、非阻塞等待、阻塞等待、命令输出)
1. 概述 golang 下的 os/exec 包执行外部命令包执行外部命令.它包装了 os.StartProcess 函数以便更容易的修正输入和输出,使用管道连接I/O,以及作其它的一些调整. 与 ...
- php 运行外部程序_PHP在linux上执行外部命令的方法
目录: 一.PHP中调用外部命令介绍 二.关于安全问题 三.关于超时问题 四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍 在PHP中调用外部命令,可以用,1>调用 ...
- php在linux中执行外部命令
目录: 一.PHP中调用外部命令介绍 二.关于安全问题 三.关于超时问题 四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍 在PHP中调用外部命令,可以用,1>调用 ...
- Linux培训教程 浅谈:PHP在linux上执行外部命令(整理)
一.PHP中调用外部命令介绍 二.关于安全问题 三.关于超时问题 四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍 在PHP中调用外部命令,可以用,1>调用专门函数 ...
- golang执行linux命令
golang执行linux命令代码,用过好用 func Shellout(command string) (error, string, string) {var stdout bytes.Buffe ...
- java 执行外部命令 苹果_Java中执行外部命令
在项目中执行一个linux的shell脚本,于是需要在java环境下执行外部命令如系统命令.linux命令的需求,本人小小研究了一下,又上网查了一些资料先整理如下. java执行外部命令主要依赖两个类 ...
- Java执行外部命令,并把结果回显到控制台
JAVA现在执行外部命令,主要的方式,还是通过调用所以平台的SHELL去完成,WINDOWS下面就用CMD,LINUX或者是UNIX下面就用SHELL,下面演示一个对BAT文件的调用,并把结果回显到控 ...
- sed当中使用变量替换以及执行外部命令
转自:http://blog.csdn.net/linwhwylb/article/details/7184748 在使用sed对日志或者其它文本进行parse的过程当中,有时候我们需要引用外部变量的 ...
- Objective-C 执行外部命令
执行外部命令 转载于:https://www.cnblogs.com/yangwenhuan/p/10090631.html
最新文章
- Struts2--标签tag
- Python-EEG工具库MNE中文教程(2)-MNE中数据结构Epoch及其创建方法
- 漫谈中国自主杀毒引擎
- 03、Swagger2和Springmvc整合详细记录(爬坑记录)
- springboot 使用i18n进行国际化
- 一次高烧期间的感悟……
- devops 文化_需要建立DevOps文化
- ICPC-图论知识与算法要览
- html swf修改参数,HTML网页中如何向swf传递参数
- 根据城市的名称获取省份的名称
- 机器学习-GB、GBDT、XGboost、Adaboost
- labelimg标注yolo格式Bug
- 实现多线程的方法到底有1种还是2种还是4种?
- struts2 超链接a标签执行action
- 加密狗是什么?一次性给您说全加密狗的概念
- go语言与区块链开发
- nanotime java_Java System nanoTime()方法
- 五点三次平滑的程序源代码
- 如何自学大数据开发?
- (1)课程简介-CS231A:Computer Vision, From 3D Reconstruction to Recognition