def log_search(self, logfile, search_content, timeout=10):
import time
import subprocess
import select
import signal
import os f = subprocess.Popen(['tail', '-F', logfile], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p = select.poll()
p.register(f.stdout) try:
while timeout>0:
if p.poll(500): # millisecond timeout
while True:
line = f.stdout.readline()
if line:
if search_content in line:
return True
else: # no content read out
break
time.sleep(1)
timeout -= 1
else:
return False
finally:
print('unregister')
p.unregister(f.stdout)
print('kill pid')
os.kill(f.pid, signal.SIGKILL)

最新文章

  1. Freemarker中空值 null的处理++++定义数组
  2. java多线程系类:JUC原子类:05之AtomicIntegerFieldUpdater原子类
  3. android:layout_gravity和android:gravity属性的区别(转)
  4. SharePoint 网站登录不上,3次输入用户名/密码白页
  5. C# 定义常量 两种实现方法
  6. android的 makefile里 的常用 宏定义
  7. poj3253
  8. 聚类结果的评估指标及其JAVA实现
  9. [转]ASP.NET 页生命周期概述
  10. 在Oracle 11g r2中,EXP无法导出个别空的表
  11. centos es2.x安装
  12. leetcode Valid Parentheses python
  13. Android 开发笔记“程序安装包APK的制作”
  14. Unity3D游戏开发之开发游戏带来的问题
  15. Dubbo原理和源码解析之“微内核+插件”机制
  16. kafka系列十、kafka常用管理命令
  17. lua系列之 lua-cjson模块安装报错问题解决
  18. 多语言(Java、.NET、Node.js)混合架构下开源调用链追踪APM项目初步选型
  19. Hbase 分布式环境安装部署
  20. 22 【python】入门指南:函数

热门文章

  1. python sort 和sorted排序
  2. form提交跳转问题
  3. Git 学习第二天(一)
  4. ImsConference.java中会议成员更新处理详解
  5. 20140724 菜单制作:制表位(段落->制表位->)
  6. Linux apache httpd virtual配置
  7. Webpack4篇
  8. [已解决]报错:ValueError: Expected 2D array, got scalar array instead
  9. Pytest初体验
  10. mongo之$group+$addToSet