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阻塞相关推荐

  1. python popen阻塞_对Python subprocess.Popen子进程管道阻塞详解

    问题产生描述 使用子进程处理一个大的日志文件,并对文件进行分析查询,需要等待子进程执行的输出结果,进行下一步处理. 出问题的代码 # 启用子进程执行外部shell命令 def __subprocess ...

  2. Python Subprocess Popen 管道阻塞问题分析解决

    Python Subprocess Popen 管道阻塞问题分析解决 参考文章: (1)Python Subprocess Popen 管道阻塞问题分析解决 (2)https://www.cnblog ...

  3. python subprocess库 终端命令行命令

    python subprocess subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值. 具体看官方文档 https://docs.python.or ...

  4. Python: subprocess.Popen()不支持unicode问题解决

    Python: subprocess.Popen()不支持unicode问题解决 参考文章: (1)Python: subprocess.Popen()不支持unicode问题解决 (2)https: ...

  5. python subprocess pipe_python类库31[进程subprocess与管道pipe]

    修改自: 原文 : Working with Python subprocess - Shells, Processes, Streams, Pipes, Redirects and More 一 程 ...

  6. python subprocess相关操作

    python subprocess常用操作 1.subprocess模块的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数.执行指定的命令,等待命令执行完成后返 ...

  7. python subprocess pipe_python subprocess pipe 实时输出日志的操作

    * test11.py import time print "1" time.sleep(2) print "1" time.sleep(2) print &q ...

  8. python stdout.read()阻塞_通过阅读python subprocess源码尝试实现非阻塞读取stdout以及非阻塞wait...

    http://blog.chinaunix.net/uid-23504396-id-4661783.html 执行subprocess的时候,执行不是问题 最麻烦的是获取进程执行后的回显来确认是否正确 ...

  9. python popen阻塞_python subprocess.Popen系列问题

    最近在项目中遇到一个需求,前端发来一个命令,这个命令是去执行传递过来的一个脚本(shell 或者python),并返回脚本的标准输出和标准出错,如果执行超过设定时间还没结束就超时,然后终止脚本的执行. ...

最新文章

  1. 方差、标准差、均方差、均方误差理解
  2. mysql存储过程写法—动态参数运用
  3. Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能
  4. 【计算机网络】网络层 : OSPF 协议 ( 协议简介 | 链路状态路由算法 | OSPF 区域 | OSPF 特点 )
  5. android 编辑框带拖动,Android带输入框的对话框
  6. python快速上手下载_初学者如何尽快上手python
  7. 分布式数据库CAP原理和Base
  8. 多个ip对应的是同一个mac_Python3+Scapy安装使用 + 查询本机对应网卡,IP,MAC代码...
  9. .NET WebSocket 核心原理初体验
  10. java、c语言、python、c++的不同之处_总结几点C/C++、Java与Python的区别
  11. 在objective-C中#pragma mark是什么意思?
  12. 单片机c语言不能编译,用keil4编译C语言代码,编译通过,但是链接时无法产生.hex文件。...
  13. SPSS单因素方差分析流程 分析某因素对试验结果是否有显著影响
  14. 关于Java的与操作和或操作
  15. android当电脑麦克风,电脑没有麦克风?让手机充当电脑麦克风!
  16. Apple MFi认证是什么意思?
  17. word模板中添加图片
  18. imx6 vpu程序分析
  19. PSnbsp;07替换颜色
  20. 【微信聊天发的表情看不到,显示错误】

热门文章

  1. 最会数据分析的护士!全世界最有名的白衣天使是如何走上可视化之路的?
  2. ht1621b和单片机电平匹配_有备无患,单片机面试问题集
  3. Web前端笔记-let n = 6 - data.length >>> 0 含义
  4. C++笔记-基于邻接表的BFS(宽度优先遍历)
  5. Qt工作笔记-Windows上界面滑动效果
  6. Qt|Linux工作笔记-异步调用ping命令,重定向获取信息,界面显示
  7. 数据结构-图的基础代码
  8. C/C++ OpenCV中值滤波双边滤波
  9. python访问数据库统一方法_Python 3.x 连接数据库(pymysql 方式)
  10. 可爱的python测试开发库及项目(python测试开发工具库汇总)