
    2Bh	                     ,    S SK r S SKrSrSS jrSS jrg)    N   c                 l   [        [        R                  R                  SS5      5      n[        [        R                  R                  SS5      5      nU[        R                  " 5       :w  a  gU (       a@  [        R                  R                  SS5        [        R                  R                  SS5        U$ )a   
Get the number of sockets inherited from systemd socket activation.

:param unset_environment: clear systemd environment variables unless False
:type unset_environment: bool
:return: the number of sockets to inherit from systemd socket activation
:rtype: int

Returns zero immediately if $LISTEN_PID is not set to the current pid.
Otherwise, returns the number of systemd activation sockets specified by
$LISTEN_FDS.

When $LISTEN_PID matches the current pid, unsets the environment variables
unless the ``unset_environment`` flag is ``False``.

.. note::
    Unlike the sd_listen_fds C function, this implementation does not set
    the FD_CLOEXEC flag because the gunicorn arbiter never needs to do this.

.. seealso::
    `<https://www.freedesktop.org/software/systemd/man/sd_listen_fds.html>`_


LISTEN_FDSr   
LISTEN_PIDN)intosenvirongetgetpidpop)unset_environmentfds
listen_pids      B/var/www/html/env/lib/python3.13/site-packages/gunicorn/systemd.py
listen_fdsr      ss    0 bjjnn\1-
.CRZZ^^L!45JRYY[ 


|T*


|T*J    c                 z   [         R                  R                  S5      nUc  g [        R                  " [        R                  [        R
                  [        R                  -  5      nUS   S:X  a  SUSS -   nUR                  U5        UR                  U R                  S5      5        U(       a  [         R                  R                  S5        WR                  5         g! [         a    UR                  SS	S
9   NSf = f! U(       a  [         R                  R                  S5        WR                  5         f = f)a  Send a notification to systemd. state is a string; see
the man page of sd_notify (http://www.freedesktop.org/software/systemd/man/sd_notify.html)
for a description of the allowable values.

If the unset_environment parameter is True, sd_notify() will unset
the $NOTIFY_SOCKET environment variable before returning (regardless of
whether the function call itself succeeded or not). Further calls to
sd_notify() will then fail, but the variable is no longer inherited by
child processes.
NOTIFY_SOCKETNr   @    zutf-8z$Exception while invoking sd_notify()T)exc_info)r   r	   r
   socketAF_UNIX
SOCK_DGRAMSOCK_CLOEXECconnectsendallencode	Exceptiondebugr   close)stateloggerr   addrsocks        r   	sd_notifyr'   0   s     ::>>/*D|}}V^^V->->ATAT-TU7c>$qr(?DTU\\'*+ JJNN?+

  L;dKL JJNN?+

s$   BC" "C?<D >C??D 8D:)T)F)r   r   SD_LISTEN_FDS_STARTr   r'    r   r   <module>r*      s   
 
  "Jr   