Windows 下针对python脚本做一个简单的进程保护

前提:

  大家运行的脚本程序经常会碰到系统异常关闭、或被其他用户错杀的情况。这样就需要一个进程保护的工具。

  本文结合windows 的计划任务,实现一个简单的进程保护的功能。

  1. 利用py2exe生产 exe 文件.

    py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序.

    下载地址:从http://prdownloads.sourceforge.net/py2exe

            创建py2exehelper.py文件 具体代码如下:

__author__ = 'Bruce_Zhou'
from distutils.core import setup
import py2exe
setup(console=['uniquetest.py'],)
View Code

            创建 uniquetest.py 代码如下:

__author__ = 'Bruce_Zhou'

import threading
import time
import urllib2
import os


class CountDownTimer(threading.Thread):
        def __init__(self, seconds, action):
            self.runTime = seconds
            self.action = action
            super(CountDownTimer, self).__init__()

        def run(self):
            counter = self.runTime
            for sec in range(self.runTime):
                    print counter
                    time.sleep(1.0)
                    counter -= 1
            print " Time's up"
            self.action()


def dosomethine():
    print "I'm ready"
    t = CountDownTimer(1800, dosomethine)
    t.start()

if __name__ == "__main__":

    t = CountDownTimer(10, dosomethine)
    t.start()
View Code

           

       将py2exehelper.py 和uniquetest.py 放在同一目录。

       进入py2exehelper.py文件所在目录。

       执行命令: python py2exehelper.py py2exe。

       会在目录中创建两个文件夹”bulid” 和 “dist”。你可以在dist 目录中找到你需要的exe 文件。

   

     2.利用计划任务定时检测EXE是否运行。

          创建checkexe.py脚本用于检测进程是否存在,如果不存在则开启一个新的,如果存在则什么都不做。

          你可以设定计划任务每隔多长时间久去执行下这个脚本,这样就可以保证EXE始终保持运行。

      代码如下:

         

import wmi
import subprocess
import os
from win32com.client import Dispatch
c = wmi.WMI()

def checkexe():
    for process in c.Win32_Process():
       if process.Name == "uniquetest.exe":
           return True
    return False


if __name__ == "__main__":
    print checkexe()
    if not checkexe():
        subprocess.Popen([r'C:\Users\Bruce_Zhou\Desktop\2exe\dist\uniquetest.exe'])
View Code

         

   其中WMI模块获取Windows系统的硬件信息:硬盘分区、使用情况,内存大小,CPU型号,当前运行的进程,自启动程序及位置,系统的版本等信息。

     下载地址:https://pypi.python.org/pypi/WMI/

 

转载于:https://www.cnblogs.com/zj1111184556/p/4708383.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值