Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2414496
  • 博文数量: 298
  • 博客积分: 7876
  • 博客等级: 准将
  • 技术积分: 5500
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-23 13:39
文章存档

2013年(2)

2012年(142)

2011年(154)

分类: Python/Ruby

2012-04-20 09:23:03

Linux的守护进程(Python

 

Python实现参考代码:

 

#! /usr/bin/env python

 

import os, sys

 

def daemon_create():

    # do the UNIX double-fork magic, see Stevens' "Advanced   

    # Programming in the UNIX Environment" for details (ISBN 0201563177)  

    try:   

        pid = os.fork()   

        if pid > 0:  

            # exit first parent  

            sys.exit(0)   

    except OSError, e:   

        writelog("fork #1 failed: %d (%s)" % (e.errno, e.strerror))

        sys.exit(1)  

    # decouple from parent environment  

    os.chdir("/")   

    os.setsid()   

    os.umask(0)   

    # do second fork  

    try:   

        pid = os.fork()   

        if pid > 0:  

            # exit from second parent, print eventual PID before 

            writelog("Daemon PID %d" % pid )

            sys.exit(0)   

    except OSError, e:  

        writelog("fork #2 failed: %d (%s)" % (e.errno, e.strerror))

        sys.exit(1)

 

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