子进程或进程或OMG!!

大家好, 在这里,我很高兴地开始思考 - 好的,我需要创建一个 工具(UNIX)的包装器,除了Lauch the End Tool和 发送一个SQL Instert让DB知道该工具已启动(我们可以吗 说老大哥..). 有些工具很长,有很多 其他数据很小,很快..所以我开始了 传统方法 - 检查Google组以获取答案. 我很快 意识到这实际上是多么挑战. 看到我的方法是 简单的 工具名称= Foobar 象征性地将foobar链接到我的包装器.py.py 1.获取ARG和其他一些关键数据(用户,CWD等) 2.分叉这个过程并使紫红色运行(时间很精致 课程) 3.在一边提交MySQL呼叫,说发生了什么... 听起来很简单,我以为我已经准备好了..直到Google组... http://groups.google.com/group/comp比404b4b4f0e1ff 好的,现在我需要考虑I/O重定向hmmm,好的数据. 人们已经处理了这一点 - 但大部分已经过时了. 等待导入子过程..看起来很有希望嘿,有些人确实使用过 此.. http://www.dalkescientific.com/writi..._programs.html http://www.th.th.third-bit.com/swc2/swc2/lec/integrate.html http://www.easysw.com/~.com/~.com/~.com/~.com/~.com/~. Mike/Cups/strfiles/1648/SMTP 不用说这比我"希望"要复杂得多. 是否有人以通用的方法解决了这一问题. #!/usr/bin/env Python 导入OS,系统,字符串 导入子过程 argc = len(sys.argv) #是的,我将所有EXE都移至.bin Dicorecotory sys.argv [0] = os.path.join(os.getcwd() +" /.bin/" + os.path.basename(sys.argv [0])) cmd = string.join(sys.argv,"") subproces.popen(CMD) 这有几个问题 - 其中至少有args不起作用. 有人真的尝试了这种方法吗?

# 回答1

Rh0dium写道: 您阅读了文档吗? 它说明了如何通过命令行(提示: 这是一个列表,而不是字符串). http://docs.python.org/lib/module-subprocess.html - - 罗伯特·克恩(Robert Kern) "我已经相信整个世界都是一个谜,无害的谜 这是我们自己疯狂地尝试解释它的可怕的 一个基本的真理." -Umberto Eco
# 回答2

Rh0dium写道: 不,他们只是为此而写了代码. :) 认真地说,您可能需要考虑使用Popen2模块. 然后,您将能够等待子过程返回并检查 返回代码,此外,您可以先进行DB更新,然后进入 等待()检查成功. -b
# 回答3

rotflmao-谢谢---我"是"的意思是有人做了包装器的方法 前!! 没有人使用代码..哈哈很好! 子过程还具有等待对象. 我认为我比这个更好 Popen2(我过去使用过的)出于多种原因,但是 主要是简单. 话虽如此,我不想 使用等待对象,因为我担心DB查询在某些情况下可能 花比命令更长.这会让用户想知道 发生了什么.. o nly测试会证明.. 谢谢罗伯特 - 是的,我检查了文档,并发现这需要 我发送帖子后不久清单.

标签: python

添加新评论