【python – 如何检查子进程是否已完成?】教程文章相关的互联网学习教程文章

python – 如何杀死子进程【代码】

我找到了几种杀死子进程的方法.我想使用os.kill(pid).但它不起作用,我想它应该.def onExit():os.kill(logProc, 0)QtCore.QCoreApplication.instance().quitreturnbutton.clicked.connect(onExit)logProc=os.fork() if logProc>0:proc()解决方法:你应该传递signal.SIGKILL(9),signal.SIGTERM(15)之类的信号来杀死进程.import signal...os.kill(logProc, signal.SIGKILL)根据Linux kill(2):If sig is 0, then no signal is sent, ...

Python从子进程调用raw_input【代码】

我正在使用子进程从下面调用python脚本.用户从命令行选择使用raw_input打开哪个文件import optparse import subprocess import readline import osdef main():options = {'0': './option_0.py','1': './option_1.py','2': './option_2.py','3': './option_3.py'}input = -1while True:if input in options:file = options[input]subprocess.Popen(file)else:print "Welcome"print "0. option_0"print "1. option_1"print "2. optio...

python – Windows上的异步子进程【代码】

首先,我解决的整体问题比我在这里显示的要复杂一点,所以请不要告诉我“使用阻塞线程”,因为如果没有公平的FAIR重写和解决方案,它将无法解决我的实际情况.重构. 我有几个不是我要修改的应用程序,它们从stdin获取数据并在执行魔法后将其输出到stdout.我的任务是链接其中几个程序.问题是,有时他们会窒息,因此我需要跟踪他们在STDERR上输出的进度.pA = subprocess.Popen(CommandA, shell=False, stdout=subprocess.PIPE, stderr=subpr...

python – 与ps输出不同的子进程pid【代码】

为什么子进程pid(Popen.pid)与ps命令返回的值不同? 当ps从python(带有subprocess.call())和另一个终端调用时,我注意到了这一点. 这是一个简单的python文件来测试:#!/usr/bin/python3 ''' Test subprocess termination '''import subprocesscommand = 'cat'#keep pipes so that cat doesn't complain proc = subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE,shell=True)print('pi...

pdflatex在mac上的python子进程中【代码】

我正在尝试从Python 2.4.4在.tex文件上运行pdflatex.子进程(在mac上):import subprocess subprocess.Popen(["pdflatex", "fullpathtotexfile"], shell=True)这实际上什么也没做.但是,我可以在终端中运行“pdflatex fullpathtotexfile”而不会出现问题,生成pdf.我错过了什么? [编辑]正如其中一个答案所示,我试过:return_value = subprocess.call(['pdflatex', '/Users/Benjamin/Desktop/directory/ON.tex'], shell =False)失败的...

如何为需要文件名而不是变量的python子进程调用提供输入?【代码】

我试图在python中调用shell脚本(segment.sh).在控制台上生成正确结果的语法是:> ./segment.sh ctb file.txt utf-8 0可以看出,这个shell脚本需要一个文本文件作为输入.我想要做的是打开文件并在python中读取它的内容(后来最好从HTML POST表单),并以某种方式将包含内容的变量传递给python子进程呼叫. 以下功能无效.但是如果我只是提供一个文件名,例如:Popen(["/bin/bash", "./segment.sh", "ctb", "file.txt", "utf-8", "0"])`然后...

python – 为什么线程比子进程慢?什么时候我应该使用子进程代替线程,反之亦然

在我的应用程序中,我尝试了python线程和子进程模块来打开firefox,我注意到子进程比线程更快.这背后的原因是什么? 什么时候用它们代替对方?解决方法:Python(或者说CPython,常用的基于c的实现)有一个Global Intepreter Lock(也就是GIL). 当多个线程访问同一个内存时,某种锁定是同步内存访问所必需的,这就是进程内部发生的事情.进程之间不共享内存(除非您专门分配此类内存),因此不需要锁定. 锁的全局性阻止了多个线程在同一进程中运...

python – Common Lisp:使用与lisp进程不同的工作目录启动子进程【代码】

假设我有一个目录A和子目录B.我进入A并启动lisp.在那个lisp进程中,我想启动一个Python子进程,其中Python将B视为其当前工作目录. lisp进程需要在A中有cwd,而python进程在B中应该有cwd.我如何以跨平台,简单的方式执行此操作? 我正在寻找一种适用于CCL和SBCL的解决方案(可能使用’运行程序功能),适用于Windows,Linux和OS X. 我查看了CCL运行程序文档,我没有看到改变已启动进程的cwd的方法. 我看了Python命令行参数,我没有看到一个会改...

python – 始终并行运行恒定数量的子进程【代码】

我想使用子进程让20个写入脚本实例并行运行.假设我有一个大的网址列表,其中包含100,000个条目,我的程序应该控制我的脚本的20个实例始终在该列表上工作.我想按如下方式编写代码:urllist = [url1, url2, url3, .. , url100000] i=0 while number_of_subproccesses < 20 and i<100000:subprocess.Popen(['python', 'script.py', urllist[i]]i = i+1我的脚本只是将内容写入数据库或文本文件.它不输出任何东西,不需要比网址更多的输入....

在python中替代子进程

我正在尝试编写一个脚本,它必须对一些bash命令进行大量调用,解析并处理输出,最后给出一些输出. 我正在使用subprocess.Popen和subprocess.call 如果我理解正确这些方法产生一个bah进程,运行命令,获取输出然后终止进程. 有没有办法让bash进程在后台持续运行,然后python调用可以直接进入该进程?这就像bash作为服务器运行和python调用一样. 我觉得这会优化调用,因为没有bash进程设置和拆卸.或者它不会带来性能优势?解决方法:If I und...

Python中的子进程Popen和PIPE【代码】

以下代码将空行打印为输出,为false.问题不在于权限,因为我使用777权限测试了pdf -file的命令.如何修复命令以提供正确的输出?import subprocess from subprocess import PIPE, Popen output = Popen(['pdftotext', '/home/aal/Desktop/lkn_pdf/appa.pdf'], stdout=PIPE).communicate()[0]解决方法:pdftotext默认创建一个文件.要将结果发送到标准输出,请使用:pdftotext file.pdf -或者在Python中:output = Popen(['pdftotext', '/...

Python踩坑之旅其一杀不死的Shell子进程【代码】

1.1 踩坑案例 踩坑的程序是个常驻的Agent类管理进程, 包括但不限于如下类型的任务在执行:a. 多线程的网络通信包处理和控制Master节点交互 有固定Listen端口b. 定期作业任务, 通过subprocess.Pipe执行shell命令 c. etc发现坑的过程很有意思:a.重启Agent发现Port被占用了=> 立刻想到可能进程没被杀死, 是不是停止脚本出问题 => 排除发现不是, Agent进程确实死亡了 => 通过 netstat -tanop|grep port_number 发现端口确实有人占用 => ...

在python多处理中从子进程返回大对象

我正在使用Python多处理来产生一些工作者.它们中的每一个都应该返回一个大小为几MB的数组. >是否正确,因为我的返回数组是在子进程中创建的,所以当进程结束时需要将它复制回父进程的内存中? (这似乎需要一段时间,但它可能是一个小问题)>是否有一种机制允许父和子访问相同的内存中对象? (同步不是问题,因为只有一个孩子会访问每个对象) 我担心我在python如何实现多处理方面存在一些差距,并且试图说服pypy玩得很好并不会让事情变得更...

“pwd”在运行python子进程时在Windows机器上给出路径【代码】

我编写了以下脚本file_I_executed.py:import subprocess def main():loc = subprocess.popen("pwd")print loc哪个给出了输出:C:\Python27\python.exe C:/Users/username/PycharmProjects/projectname/file_I_executed.py但是,当我在windows cmd上尝试“pwd”时,我得到:C:\Users\username\somedirectory>pwd 'pwd' is not recognized as an internal or external command, operable program or batch file.是什么赋予了?子进程是...

Python子进程到Bash:花括号【代码】

我有以下Python行:import subprocess subprocess.Popen("egrep -r --exclude=*{.git,.svn}* \"text\" ~/directory", stdout=subprocess.PIPE, shell=True).communicate()[0]不幸的是,bash完全忽略了–exclude = * {.git,.svn} *标志. 我把问题缩小到花括号. –exclude = * .git *将通过python的popen工作,但是引入花括号的那一刻,我无助了.有什么建议? 注意:我尝试使用Python的命令库运行命令,它产生完全相同的输出 – 并且完全...