我试图从python执行shell脚本(而不是命令):
main.py
-------
from subprocess import Popen
Process=Popen(['./childdir/execute.sh',str(var1),str(var2)],shell=True)
execute.sh
----------
echo $1 //does not print anything
echo $2 //does not print anything
Run Code Online (Sandbox Code Playgroud)
var1和var2是我用作shell脚本输入的一些字符串.我错过了什么或者有其他办法吗?
我正在使用带有许多参数的 Subprocess Popen 执行第 3 方应用程序
myprocess=Popen(['executionlist','with','arguments'],stdout=PIPE,stderr=PIPE)
myprocess.communicate()
Run Code Online (Sandbox Code Playgroud)
获取我的 stdout 和 err 元组,第 3 方应用程序在后台启动,因此我在 stdout 中获取其 pid...[如果我尝试在前台运行,它会抛出“打开终端时出错:未知”] 我正在使用 psutil跟踪所有这些分叉并使用以下方式监控它:
EXITCODE=psutil_obj.wait(timeout=xxx)
Run Code Online (Sandbox Code Playgroud)
应用程序发送不同的退出代码,我需要在 EXITCODE 中访问这些代码,但当我在不同的 python 脚本中运行它时,它总是给我“无”值......
根据 https://code.google.com/p/psutil/wiki/Documentation “Wait() 进程终止,如果该进程是当前进程的子进程,也返回退出代码,否则无。”
无论如何,我是否可以从独立进程 ID 访问退出代码,而不是由 Popen 专门分叉的?