Ñò
ÂhHc           @   sm   d  d k  Z  d  d k Z e  i d j o d d d d d „ Z n) d d d d d „ Z d d
 d	 „  ƒ  YZ d S(   iÿÿÿÿNt   posixt   .s	   /dev/nulli   c      
   C   s¥  y( t  i ƒ  d j o t i d ƒ n WnB t j
 o6 } t i i d | i | i f ƒ t i d ƒ n Xt  i	 ƒ  t  i
 |  ƒ t  i | ƒ y( t  i ƒ  d j o t  i d ƒ n WnB t j
 o6 } t i i d | i | i f ƒ t  i d ƒ n Xt d d ƒ } t | d d ƒ } t | d d ƒ } t  i | i ƒ  t i i ƒ  ƒ t  i | i ƒ  t i i ƒ  ƒ t  i | i ƒ  t i i ƒ  ƒ | | t _ t _ d S(	   s:   Robustly turn into a UNIX daemon, running in our_home_dir.i    s   fork #1 failed: (%d) %s
i   s   fork #2 failed: (%d) %s
s	   /dev/nullt   rs   a+N(   t   ost   forkt   syst   exitt   OSErrort   stderrt   writet   errnot   strerrort   setsidt   chdirt   umaskt   _exitt   opent   dup2t   filenot   stdint   stdout(   t   our_home_dirt   out_logt   err_logR   t   et   sit   sot   se(    (    s@   /usr/local/lib/python2.6/dist-packages/django/utils/daemonize.pyt   become_daemon   s,     
 c         C   s   t  i |  ƒ t  i | ƒ t i i ƒ  t i i ƒ  t i i ƒ  | o t | d d ƒ t _ n t	 ƒ  t _ | o t | d d ƒ t _ n t	 ƒ  t _ d S(   s   
        If we're not running under a POSIX system, just simulate the daemon
        mode by doing redirections and directory changing.
        t   ai    N(
   R   R   R   R   R   t   closeR   R   R   t
   NullDevice(   R   R   R   R   (    (    s@   /usr/local/lib/python2.6/dist-packages/django/utils/daemonize.pyR   $   s    R   c           B   s   e  Z d  Z d „  Z RS(   s<   A writeable object that writes to nowhere -- like /dev/null.c         C   s   d  S(   N(    (   t   selft   s(    (    s@   /usr/local/lib/python2.6/dist-packages/django/utils/daemonize.pyR	   9   s    (   t   __name__t
   __module__t   __doc__R	   (    (    (    s@   /usr/local/lib/python2.6/dist-packages/django/utils/daemonize.pyR   7   s   (    (   R   R   t   nameR   t   NoneR   (    (    (    s@   /usr/local/lib/python2.6/dist-packages/django/utils/daemonize.pyt   <module>   s   