草庐IT

subprocess_exec

全部标签

file-io - 在 golang 中,如何将 exec.Cmd 的标准输出写入文件?

我正在尝试运行shell命令,捕获标准输出并将该输出写入文件。但是,我似乎缺少一些步骤,因为当程序存在时,我尝试写入的文件是空的。如何捕获命令的标准输出并将其写入文件?packagemainimport("bufio""io""os""os/exec")funcmain(){cmd:=exec.Command("echo","'WHATTHEHECKISUP'")//opentheoutfileforwritingoutfile,err:=os.Create("./out.txt")iferr!=nil{panic(err)}deferoutfile.Close()stdoutPipe

error-handling - 在 Golang 中运行 exec.Command 时如何调试 "exit status 1"错误

当我运行下面的代码时:cmd:=exec.Command("find","/","-maxdepth","1","-exec","wc","-c","{}","\\")varoutbytes.Buffercmd.Stdout=&outerr:=cmd.Run()iferr!=nil{fmt.Println(err)return}fmt.Println("Result:"+out.String())我收到此错误:exitstatus1但是这对于调试错误的确切原因没有帮助。如何获取更详细的信息? 最佳答案 解决方案是使用Command对

go - 在 Golang 中终止以 os/exec 开始的进程

有没有办法终止在Golang中以os.exec启动的进程?例如(来自http://golang.org/pkg/os/exec/#example_Cmd_Start),cmd:=exec.Command("sleep","5")err:=cmd.Start()iferr!=nil{log.Fatal(err)}log.Printf("Waitingforcommandtofinish...")err=cmd.Wait()log.Printf("Commandfinishedwitherror:%v",err)有没有办法提前终止该进程,也许在3秒后?提前致谢

python - subprocess.Popen() : OSError: [Errno 8] Exec format error in python?

昨天,我编写并运行了一个pythonscript,它使用subprocess.Popen(command.split())wherecommand执行一个shell是构成.sh脚本及其参数的字符串。这个脚本直到昨天都运行良好。今天,我运行了相同的脚本,现在我不断遇到这个错误。p=subprocess.Popen(shell_command.split())File"/usr/lib/python2.7/subprocess.py",line679,in__init__errread,errwrite)File"/usr/lib/python2.7/subprocess.py",line

python - subprocess.call() 的返回值是多少?

我不确定subprocess.call()的返回值是什么意思。我可以安全地假设零值总是意味着命令执行成功吗?返回值是否等同于shell命令的退出状态?例如,以下代码对Linux上的几乎所有命令都有效吗?cmd="foo.txt>bar.txt"ret=subprocess.call(cmd,shell=True)ifret!=0:ifret请赐教:-) 最佳答案 是的,Subprocess.call返回“实际进程返回码”。您可以查看Subprocess.call的官方文档和Subprocess.Popen.returncode

python - 如何从 subprocess.Popen() 获取输出。 proc.stdout.readline() block ,没有数据打印出来

我想要执行Test_Pipe.py的输出,我在Linux上尝试了以下代码,但没有成功。Test_Pipe.pyimporttimewhileTrue:print"Someting..."time.sleep(.1)Caller.pyimportsubprocessassubpimporttimeproc=subp.Popen(["python","Test_Pipe.py"],stdout=subp.PIPE,stdin=subp.PIPE)whileTrue:data=proc.stdout.readline()#block/waitprintdatatime.sleep(.1)pr

php - php exec() 中的 sudo

我不知道这里的交易是什么……所以我想运行一个applescript:sudoosascriptmyscript.scpt这在终端中运行良好,但当我通过PHP的exec()执行它时却不行;什么都没发生。控制台说nottypresentandnoaskpassprogramspecified;TTY=unknown;…我进行了研究,似乎我缺少sudo命令的密码。我尝试了几种不同的方法来解决这个问题,包括:在/etc/sudoers中写入%adminALL=(ALL)ALL和proc_open()而不是exec()似乎都没有工作,因此让我发疯!所以基本上,有没有一种明确的方法可以让PHP执行

linux - find -name "*.xyz"-o -name "*.abc"-exec 对所有找到的文件执行,而不仅仅是指定的最后一个后缀

我正在尝试运行find./-name"*.xyz"-o-name"*.abc"-execcp{}/path/i/want/to/copy/to实际上,这是一个更大的名称扩展列表,但我不知道这对这个示例很重要。基本上我想将所有找到的内容复制到另一个/path/i/want/to/copy/to。但是,它似乎只执行列表中的最后一个-name测试。如果我删除-exec部分,我希望找到的所有文件变体都会打印出来。如何让它将找到的完整文件传递给-exec? 最佳答案 find通过评估您给它的表达式来工作,直到它可以确定整个表达式的真值(真或假

PHP exec - 检查是否启用或禁用

如果exec()在服务器上启用或禁用,有没有办法检查php脚本? 最佳答案 这将检查该功能是否真的有效(权限、权限等):if(@exec('echoEXEC')=='EXEC'){echo'execworks';} 关于PHPexec-检查是否启用或禁用,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2749591/

python - standard_init_linux.go :178: exec user process caused "exec format error"

docker开始抛出这个错误:standard_init_linux.go:178:execuserprocesscaused"execformaterror"每当我使用CMD或ENTRYPOINT运行特定的docker容器时,除了删除CMD或ENTRYPOINT之外,不考虑对文件的任何更改。这是我一直在使用的docker文件,它在大约一个小时前运行良好:FROMbuildpack-deps:jessieENVPATH/usr/local/bin:$PATHENVLANGC.UTF-8RUNapt-getupdate&&apt-getinstall-y--no-install-reco