subprocess创建守护进程
来源:互联网 发布:日程本 知乎 编辑:程序博客网 时间:2024/06/12 19:23
刚开始我在做爬虫,爬虫程序用python程序调用,但有时候爬虫程序会死掉,挂了,所以程序会一直停留在那儿,该怎么办呢?我想可以建立一个坚守程序,让os.system()调用爬虫程序能在一定时间内未执行完时,强制杀死,并重新开始,但根据结构化程序,顺序执行没办法做到这一点,我知道肯定需要线程机制实现,网上找到了subprocess这个模块,它会创建一个子进程,还有一个类Popen(),还是挺好用的。
#coding=utf-8import subprocessimport time#child=subprocess.Popen(['ping','-t','5','www.google.com'])pan=Nonewhile pan!=0:child=subprocess.Popen('casperjs C:\\Users\\MINUS\\Desktop\\一次登录.js') #建立子进程#print child.poll() #print child.wait() #这里不适合wait函数,因为这个函数会让子进程进行完#print child.returncodetime.sleep(10) #给10s的时间去执行子进程,时间内执行不了就重启子进程print 'parent'#print child.returncode #获取进程的返回值print child.poll() #进程结束返回0 ,否则为Nonoepan=child.poll()if pan!=0: #进程没结束child.kill() #杀死这个进程 进入循环重新执行 child.terminate()这个也是可以的
关于subprocess模块的各个函数讲解我这里就不讲了,可以参考
http://blog.csdn.net/hansel/article/details/8944785 CSDN文档
https://docs.python.org/2/library/subprocess.html#subprocess.Popen.stderr 官方文档
上面的讲解过程差不多,应该能了解了
返回结果是这样的:
I've wait 2 seconds
start url:http://weibo.com/signup/signup.php?inviteCode=3105241737
parent
None
parent
None
I've wait 2 seconds
start url:http://weibo.com/signup/signup.php?inviteCode=3105241737
parent
None
parent
None
parent
None
parent
None
I've wait 2 seconds
start url:http://weibo.com/signup/signup.php?inviteCode=3105241737
parent
None
I've wait 2 seconds
start url:http://weibo.com/signup/signup.php?inviteCode=3105241737
- subprocess创建守护进程
- python-subprocess创建附加进程
- 创建守护进程步骤
- 守护进程 创建 详解
- python 创建守护进程
- 如何创建守护进程
- 守护进程的创建
- 如何创建守护进程
- 创建守护进程
- 守护进程创建步骤
- golang 创建守护进程
- linux创建守护进程
- 创建守护进程 daemon
- 创建守护进程
- 创建守护进程
- Linux 守护进程创建
- 创建守护进程
- 创建守护进程
- 32位XP系统下Apache+PHP调试工具Xdebug安装配置教程
- Android 如何在Eclipse中查看Android API源码 及 support包源码
- wifi破解教程
- java学习笔记 第一篇 基础知识
- 浅谈设计层次的抽象类和接口异同
- subprocess创建守护进程
- C#之接口定义与实现
- java jdk1.7及JDBC驱动桥环境变量的配置(水一贴)
- Java正则表达式教程
- 阿里面试总结
- js 获取url
- Nyoj 82 迷宫寻宝(一)
- 经典算法--快速排序
- u盘 制作centos 6.4 安装过程