subprocess添加超时功能

def TIMEOUT_COMMAND(command, timeout):
    """call shell-command and either return its output or kill it
    if it doesn‘t normally exit within timeout seconds and return None"""
    import subprocess, datetime, os, time, signal,sys
    cmd = command.split(" ")
    start = datetime.datetime.now()
    process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE,shell=True)
    while process.poll() is None:
        time.sleep(1)
        now = datetime.datetime.now()
        if (now - start).seconds> timeout:

            subprocess.Popen("cmd /c taskkill /f /im notepad.exe")

            return False
    return True

print TIMEOUT_COMMAND("notepad.exe",5)

  

时间: 2024-11-04 04:22:47

subprocess添加超时功能的相关文章

跟陈湾来完善C++(2), 添加属性功能

上面几篇文章中,我们添加了名称空间优化,添加事件功能.这些对我来说其实已经够了.但还可以加一个属性功能. 当我们在C++中更改一个属性时,平常都是Get函数加上Set函数,但是这样,没有直接写一个成员变量方便.例如: a.SetValue(a.GetValue() + 1); 没有 a.Value = a.Value + 1; 方便. 但是这种方便只有在调用有属性功能的对象时才能使用.在创建属性的时候我还是用老套路,写一个Get和Set函数,该干啥还是干啥.我的属性功能其实就是在类中添加一个共有

【转】为Android应用添加搜索功能

为Android应用添加搜索功能 为Android应用增加搜索功能:增加搜索建议

修复Bug是重点 iOS9将不注重添加新功能

苹果iOS7系统时发生了界面风格的巨大改变,目前的iOS8也在延续之前的风格,只是进行了功能补充,那么iOS9是否还会继续保持这样的风格呢?据外媒消息,iOS9的确不会再次对风格进行大修大改,而是着重改进稳定性和系统优化. iOS9将不注重添加新功能(图片来自MacWorld) 据外媒从苹果内部工程师处获知,iOS9的主要工作是修复漏洞.保持系统的稳定性,并增强系统性能,并不会特别注重对新功能的开发. 另外,近期苹果因iOS8系统固件体积过大而多次被用户告上法庭,看来是起到了一定效果.据称苹果将

java-第十四章-代参的方法(二)-实现MyShopping系统的添加会员功能

 package com.wxws.sms; public class Customer {  int No;  int integarl; } package com.wxws.sms; public class Customers {  Customer[] customers = new Customer[100];  public void add(Customer cust){   for (int i = 0; i <customers.length; i++) {    if (c

(译)Windsor入门教程---第五部分 添加日志功能

介绍 现在我们已经有了基础的框架了,是时候添加内容了,那么我们首先应该考虑的就是在应用程序中添加日志功能.我们会使用Windsor来配置,在这一部分,你将学习Windsor之外的其他功能. Logging Facility 在上一部分说过,Windsor有很多自带的可选的功能组件,他们扩展了Windsor的即用性.在这一部分,我们将在程序中添加日志功能. Logging Facility提供了一些常用的日志框架比如Log4net.Nlog,以及mvc内置的日志框架Trace.Logging Fa

C#数据层添加事务功能

例子 public bool Save(ProjectModel project) { int Result = 0; SqlConnection Conn = new SqlConnection(SqlHelper.connectionString); Conn.Open(); SqlTransaction Trans; Trans = Conn.BeginTransaction(); try { SqlParameter[] sqlParameter1 = new SqlParameter[

为python 添加新功能-dump

一直觉得thinkphp提供的dump函数挺好用的,但是python里面没有,就一直想着写个简单的. dir是我比较常用的一个内置函数了,但是显示效果实在有点受不了,每次我都要从大量的字符串里找到我需要的,眼都花了. 所以我就想,一行显示一个就好了. 所以我就写了一个模块,命名为dp 1 #!/usr/bin/env python 2 #coding:utf-8 3 4 """ 5 dump variable 6 """ 7 def dump(v

ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能

原文:ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能 在最新发布的ActiveReports 9报表控件中添加了多项新功能,以帮助你在更短的时间里创建外观绚丽.功能强大的报表系统,本文将重点介绍新增文档目录控件(TOC),通过拖拽操作便可添加报表目录. 目录控件可以帮助用户快速的导航到位于报表中希望查看的数据.可以使用目录控件内嵌报表主体的内容列表用于打印和导出.不像文档结构图只能在报表浏览器中查看不能导出或者打印. 本示例被分解为下面的步骤 Visual St

在VC中,为图片按钮添加一些功能提示(转)

在VC中,也常常为一些图片按钮添加一些功能提示.下面讲解实现过程:该功能的实现主要是用CToolTipCtrl类.该类在VC  msdn中有详细说明.首先在对话框的头文件中加入初始化语句:public:下,加入:CToolTipCtrl    m_Mytip;然后在初始化对话框函数中加入:m_Mytip.Create(this);  m_Mytip.AddTool( GetDlgItem(IDC_BUTTON), "你想要添加的提示信息" ); //IDC_BUTTON为你要添加提示信