Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1125724
  • 博文数量: 170
  • 博客积分: 1603
  • 博客等级: 上尉
  • 技术积分: 1897
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 15:54
文章分类

全部博文(170)

文章存档

2016年(27)

2015年(21)

2014年(27)

2013年(21)

2012年(7)

2011年(67)

我的朋友

分类: Python/Ruby

2011-04-20 19:37:39

http://mirrors.dev.shopex.cn/rpm/epel/5Server/i386/下载
python-daemon-1.5.2-3.el5.noarch.rpm

测试代码test.py
#! /usr/bin/python
import daemon,time

print 1

p = daemon.DaemonContext()
p.open()
for i in range(0,100):
    print "test"
    time.sleep(1)

直接运行这个脚本test.py就是守护进程了
看了n久daemon.py的代码,一直没找到需要做守护进程的程序入口,后来想想发现被
def daemoni():
pid = os.fork()
if pid != 0:
os._exit(0)
os.system('python server.py')
这样的代码误导了.........

其实只要在代码最开头加上守护进程的类就可以了orz
怪不得人家写这代码的时候说
# 当然, 你永远不会使用 os.system 来启动一个程序
# os.system 会启动 python、server.py 还有你不希望看到的 sh 进程
所以成为守护进程的方法是父进程自杀后子进程调用os.setsid()

其实c下写守护进程也是一样的,启动个子进程,父进程退出,然后setsid。

怎么写守护进程类可以参考



阅读(1175) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~