python subprocess阻塞
import select
import os
import subprocess
import time
import fcntlargs = ['python','./fetch_file2.py',ip,path]
proc = subprocess.Popen(args, stdout=subprocess.PIPE,stderr=subprocess.PIPE,close_fds=True)def non_block_read(output): # 避免阻塞fd = output.fileno()fl = fcntl.fcntl(fd, fcntl.F_GETFL)fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)try:return output.read()except:return ""while proc.poll() is None: #fetch中rsync结束。但是fetch没有结束(怀疑输出过大) 导致这里一直是Nonepassprint proc.poll() # 杀死fetch进程 返回-9
print proc.stderr.read() #阻塞<br>#方法1:
#non_block_read(proc.stderr) #防止阻塞<br>#方法2:
select_rfds = [ proc.stdout, proc.stderr]
(rfds, wfds, efds) = select.select(select_rfds, [],[])
if proc.stderr in rfds: #不存在。若select_rfds=[stderr],则阻塞在select上len = proc.stderr.read(10)if len == 0:print "empty"
else:print "proc.stderr"if proc.stdout in rfds:print "proc.stdout"
python subprocess阻塞相关推荐
- python popen阻塞_对Python subprocess.Popen子进程管道阻塞详解
问题产生描述 使用子进程处理一个大的日志文件,并对文件进行分析查询,需要等待子进程执行的输出结果,进行下一步处理. 出问题的代码 # 启用子进程执行外部shell命令 def __subprocess ...
- Python Subprocess Popen 管道阻塞问题分析解决
Python Subprocess Popen 管道阻塞问题分析解决 参考文章: (1)Python Subprocess Popen 管道阻塞问题分析解决 (2)https://www.cnblog ...
- python subprocess库 终端命令行命令
python subprocess subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值. 具体看官方文档 https://docs.python.or ...
- Python: subprocess.Popen()不支持unicode问题解决
Python: subprocess.Popen()不支持unicode问题解决 参考文章: (1)Python: subprocess.Popen()不支持unicode问题解决 (2)https: ...
- python subprocess pipe_python类库31[进程subprocess与管道pipe]
修改自: 原文 : Working with Python subprocess - Shells, Processes, Streams, Pipes, Redirects and More 一 程 ...
- python subprocess相关操作
python subprocess常用操作 1.subprocess模块的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数.执行指定的命令,等待命令执行完成后返 ...
- python subprocess pipe_python subprocess pipe 实时输出日志的操作
* test11.py import time print "1" time.sleep(2) print "1" time.sleep(2) print &q ...
- python stdout.read()阻塞_通过阅读python subprocess源码尝试实现非阻塞读取stdout以及非阻塞wait...
http://blog.chinaunix.net/uid-23504396-id-4661783.html 执行subprocess的时候,执行不是问题 最麻烦的是获取进程执行后的回显来确认是否正确 ...
- python popen阻塞_python subprocess.Popen系列问题
最近在项目中遇到一个需求,前端发来一个命令,这个命令是去执行传递过来的一个脚本(shell 或者python),并返回脚本的标准输出和标准出错,如果执行超过设定时间还没结束就超时,然后终止脚本的执行. ...
最新文章
- 方差、标准差、均方差、均方误差理解
- mysql存储过程写法—动态参数运用
- Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能
- 【计算机网络】网络层 : OSPF 协议 ( 协议简介 | 链路状态路由算法 | OSPF 区域 | OSPF 特点 )
- android 编辑框带拖动,Android带输入框的对话框
- python快速上手下载_初学者如何尽快上手python
- 分布式数据库CAP原理和Base
- 多个ip对应的是同一个mac_Python3+Scapy安装使用 + 查询本机对应网卡,IP,MAC代码...
- .NET WebSocket 核心原理初体验
- java、c语言、python、c++的不同之处_总结几点C/C++、Java与Python的区别
- 在objective-C中#pragma mark是什么意思?
- 单片机c语言不能编译,用keil4编译C语言代码,编译通过,但是链接时无法产生.hex文件。...
- SPSS单因素方差分析流程 分析某因素对试验结果是否有显著影响
- 关于Java的与操作和或操作
- android当电脑麦克风,电脑没有麦克风?让手机充当电脑麦克风!
- Apple MFi认证是什么意思?
- word模板中添加图片
- imx6 vpu程序分析
- PSnbsp;07替换颜色
- 【微信聊天发的表情看不到,显示错误】
热门文章
- 最会数据分析的护士!全世界最有名的白衣天使是如何走上可视化之路的?
- ht1621b和单片机电平匹配_有备无患,单片机面试问题集
- Web前端笔记-let n = 6 - data.length >>> 0 含义
- C++笔记-基于邻接表的BFS(宽度优先遍历)
- Qt工作笔记-Windows上界面滑动效果
- Qt|Linux工作笔记-异步调用ping命令,重定向获取信息,界面显示
- 数据结构-图的基础代码
- C/C++ OpenCV中值滤波双边滤波
- python访问数据库统一方法_Python 3.x 连接数据库(pymysql 方式)
- 可爱的python测试开发库及项目(python测试开发工具库汇总)