草庐IT

exec_SELECTgetRows

全部标签

shell - set -e 和 exec "$@"对 docker 入口点脚本有什么作用?

我注意到许多用于docker的entrypoint.sh脚本都执行以下操作:#!/bin/bashset-e...code...exec"$@"set-e和exec"$@"是干什么用的? 最佳答案 它基本上接受任何传递给entrypoint.sh的命令行参数并将它们作为命令执行。其目的基本上是“在这个.sh脚本中执行所有操作,然后在同一个shell中运行用户在命令行中传入的命令”。见:Whatarethespecialdollarsignshellvariables?NeedexplanationsforLinuxbashbuilt

go - 如何清除 close-on-exec 标志?

在Centos6上调用os.OpenFile时,文件句柄上设置了O_CLOEXEcflags。我认为不可能避免设置标志。例如,下面的调用:f,err:=os.OpenFile("lockfile",os.O_CREATE|os.O_RDWR,0666)在strace中看起来像这样:[pid2928]open("lockfile",O_RDWR|O_CREAT|O_CLOEXEC,0666)=3syscall.CloseOnExec用于为给定文件句柄设置close-on-exec标志,但我找不到相应的函数来清除close-on-exec标志。如何清除文件的close-on-exec标志?

go - exec.start 中的这部分代码是什么意思?

我看了exec.Start的代码,有些地方让我很困惑。[]F中的(*Cmd).stdin/out/err,(*Cmd).stdXX是什么意思?291typeFfunc(*Cmd)(*os.File,error)292for_,setupFd:=range[]F{(*Cmd).stdin,(*Cmd).stdout,(*Cmd).stderr}{293fd,err:=setupFd(c)294iferr!=nil{295c.closeDescriptors(c.closeAfterStart)296c.closeDescriptors(c.closeAfterWait)297return

go - 带有环境变量的 Go 中的 exec.Command()

我想在Go中运行以下代码:out,err:=exec.Command("echo","$PATH").Output()结果是:$PATH而不是“PATH=/bin...”的预期值。为什么?我怎样才能得到期望值? 最佳答案 您的命令未被shell解释,这就是预期的变量替换未发生的原因。来自execpackagedocumentation:...theos/execpackageintentionallydoesnotinvokethesystemshellanddoesnotexpandanyglobpatternsorhandleo

git - 从 Go `git shortlog` 调用 'exec()' 有什么问题?

我试图从Go中调用gitshortlog来获取输出,但我遇到了困难。这是一个工作示例,说明我如何使用gitlog执行此操作:packagemainimport("fmt""os""os/exec")funcmain(){runBasicExample()}funcrunBasicExample(){cmdOut,err:=exec.Command("git","log").Output()iferr!=nil{fmt.Fprintln(os.Stderr,"Therewasanerrorrunningthegitcommand:",err)os.Exit(1)}output:=stri

go - 如何从 exec 命令获取错误消息

我正在使用Go创建一个CLI。我正在执行一条命令,如果操作系统抛出错误,我想打印它。cmd:=exec.Command("abc","run",pathToFile)err:=cmd.Start()iferr!=nil{fmt.Printf("Error:%v\n",err)os.Exit(1)}err=cmd.Wait()iferr!=nil{fmt.Printf("Error:%v\n",err)os.Exit(1)}这只给我退出状态码Error:exitstatus1这描述不够。当我直接在终端中运行命令时,我清楚地收到了错误消息。sourcedoesnotexist'test.e

docker - docker attach 和 docker exec 的区别

两者都可以在容器中执行命令。两者都可以分离容器。那么dockerexec和dockerattach的真正区别是什么? 最佳答案 2015:有一个commitPR添加到文档中:Note:Thiscommand(attach)isnotforrunninganewprocessinacontainer.See:dockerexec.“Docker.Howtogetbash\sshinsiderunnedcontainer(run-d)?”的答案说明了区别:(docker>=1.3)Ifweusedockerattach,wecanuse

docker - docker attach 和 docker exec 的区别

两者都可以在容器中执行命令。两者都可以分离容器。那么dockerexec和dockerattach的真正区别是什么? 最佳答案 2015:有一个commitPR添加到文档中:Note:Thiscommand(attach)isnotforrunninganewprocessinacontainer.See:dockerexec.“Docker.Howtogetbash\sshinsiderunnedcontainer(run-d)?”的答案说明了区别:(docker>=1.3)Ifweusedockerattach,wecanuse

exec - google golang exec 退出状态 2 和 1

我想在Go语言的AndroidSDK平台工具中执行dexdump。我已经设置了PATH变量。(我使用的是Ubuntu12.04)这是我的代码:packagemainimport("bytes""fmt""log""os/exec")funcmain(){path,err:=exec.LookPath("dexdump")iferr!=nil{log.Fatal(err)}fmt.Println(path)cmd:=exec.Command(path)varoutbytes.Buffercmd.Stdout=&outerr2:=cmd.Run()iferr2!=nil{log.Fatal

go - 如何使用 Go 的 os/exec 评估环境变量

如何让Go评估$PATH变量。我目前只是打印“$路径”我有以下代码packagemainimport("fmt""log""os/exec")funcmain(){out,err:=exec.Command("echo","$PATH").Output()iferr!=nil{log.Fatal(err)}fmt.Printf("%s\n",out)} 最佳答案 你需要使用os.Getenv("PATH")packagemainimport("fmt""log""os/exec""os")funcmain(){out,err:=ex