File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/clwpos/__pycache__/daemon.cpython-311.pyc
�
,�q��J� � � d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
mZmZm
Z
mZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZmZmZmZmZmZ d dl m!Z!m"Z"m#Z#m$Z$m%Z% d d l&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, d d
l-m.Z. d dl/m0Z0 d dl1m2Z2 d d
l3m4Z4 edg d�� � Z5 e j6 e7� � Z8ed� � � Z9dej fd�Z:edefd�� � Z;dde<deee<e<f fd�Z= G d� de.� � Z>dS )� N)�Optional�Dict�Tuple�List)�contextmanager)�
namedtuple)�Lock�Thread)�gettext)�cpusers�get_domains_php_info�docroot�get_installed_php_versions�get_main_username_by_uid�cpinfo)�get_process_pid�remove_pid_file�write_pid_file�is_litespeed_running�is_nginx_running)�is_user_redis_alive�kill_all_users_redises�reload_redis_for_user_thread�
parse_redises)�WposDaemonBase)�WPOS_DAEMON_SOCKET_FILE)�WposDaemonLockError)�PendingSubscriptionWatcher� User_data�� redis_pid�lock�last_reload_timec # �b K � t j d� � } dV � t j | � � dS )z,
Context manager for dropping umask
r N)�os�umask)�prevs �py/clwpos/daemon.py�_umask_0r) 4 s/ � � � �
�8�A�;�;�D� �E�E�E��H�T�N�N�N�N�N� �returnc �� � t � � 5 t j t j � � } | � t � � | � � � | cddd� � S # 1 swxY w Y dS )zr
Create world-writable socket in given sock_location
or reuse existing one
:return: socket object
N)r) �socket�AF_UNIX�bindr �listen)�sockobjs r( �_create_socketr2 >