去
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) |