ó
‹*Pc           @   sk   d  d l  Z  d  d l Z e  j d k r? 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  j ƒ  d k r% t j d ƒ n  Wn@ t k
 rh } t j j d | j | j f ƒ t j d ƒ n Xt  j	 ƒ  t  j
 |  ƒ t  j | ƒ y& t  j ƒ  d k r² t  j d ƒ n  Wn@ t k
 rõ } t j j d | j | j f ƒ t  j d ƒ n Xt d d ƒ } t | d d ƒ } t | d d ƒ } t  j | j ƒ  t j j ƒ  ƒ t  j | j ƒ  t j j ƒ  ƒ t  j | j ƒ  t j j ƒ  ƒ | | 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/   ../Django//lib/python/django/utils/daemonize.pyt   become_daemon   s,     
 c         C   s™   t  j |  ƒ t  j | ƒ t j j ƒ  t j j ƒ  t j j ƒ  | r_ t | d d ƒ t _ n t	 ƒ  t _ | r‰ 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/   ../Django//lib/python/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/   ../Django//lib/python/django/utils/daemonize.pyR	   9   s    (   t   __name__t
   __module__t   __doc__R	   (    (    (    s/   ../Django//lib/python/django/utils/daemonize.pyR   7   s   (    (   R   R   t   nameR   t   NoneR   (    (    (    s/   ../Django//lib/python/django/utils/daemonize.pyt   <module>   s   