File: //lib/python3/dist-packages/supervisor/__pycache__/supervisord.cpython-310.pyc
o
�X[_�8 � @ s� d Z ddlZddlZddlZddlmZ ddlmZ ddl m
Z
ddl mZ ddl mZ ddl
mZ dd lmZ dd
lmZ G dd� d�Zd
d� Zdd� Zddd�Zdd� Zedkr_e� dS dS )a� supervisord -- run a set of applications as daemons.
Usage: %s [options]
Options:
-c/--configuration FILENAME -- configuration file path (searches if not given)
-n/--nodaemon -- run in the foreground (same as 'nodaemon=true' in config file)
-s/--silent -- no logs to stdout (maps to 'silent=true' in config file)
-h/--help -- print this usage message and exit
-v/--version -- print supervisord version number and exit
-u/--user USER -- run supervisord as this user (or numeric uid)
-m/--umask UMASK -- use this umask for daemon subprocess (default is 022)
-d/--directory DIRECTORY -- directory to chdir to when daemonized
-l/--logfile FILENAME -- use FILENAME as logfile path
-y/--logfile_maxbytes BYTES -- use BYTES to limit the max size of logfile
-z/--logfile_backups NUM -- number of backups to keep when max bytes reached
-e/--loglevel LEVEL -- use LEVEL as log level (debug,info,warn,error,critical)
-j/--pidfile FILENAME -- write a pid file for the daemon process to FILENAME
-i/--identifier STR -- identifier used for this instance of supervisord
-q/--childlogdir DIRECTORY -- the log directory for child process logs
-k/--nocleanup -- prevent the process from performing cleanup (removal of
old automatic child log files) at startup.
-a/--minfds NUM -- the minimum number of file descriptors for start success
-t/--strip_ansi -- strip ansi escape codes from process output
--minprocs NUM -- the minimum number of processes available for start success
--profile_options OPTIONS -- run supervisord under profiler and output
results based on OPTIONS, which is a comma-sep'd
list of 'cumulative', 'calls', and/or 'callers',
e.g. 'cumulative,callers')
� N)�asyncore_25)� as_string)�
ServerOptions)�decode_wait_status)�signame)�events)�SupervisorStates)�getProcessStateDescriptionc @ s� e Zd ZdZdZdZdZdd� Zdd� Zdd � Z d"d
d�Z
dd
� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zd"dd�Zd#dd�Zdd� Zd d!� ZdS )$�
SupervisorFr Nc C s || _ i | _i | _d S �N)�options�process_groups�ticks)�selfr � r �8/usr/lib/python3/dist-packages/supervisor/supervisord.py�__init__6 s
zSupervisor.__init__c C sV | j js | j �� | j �� | j jr| j �� | j �� | j js%| j �� | �� d S r ) r �first�cleanup_fds�set_uid_or_exit�set_rlimits_or_exit�make_logger� nocleanup�clear_autochildlogdir�run�r r r r �main; s
zSupervisor.mainc C s� i | _ d | _t�� z:| jjD ]}| �|� q| j�� | j�| � | j� � | jj
s4| jjr4| j�� | j�
� | �� W | j�� d S | j�� w r )r
�stop_groupsr �clearr �process_group_configs�add_process_group�process_environment�openhttpservers�
setsignals�nodaemonr � daemonize�
write_pidfile�
runforever�cleanup)r �configr r r r P s
zSupervisor.runc s� |s| j j}dd� | j�� D �}ttdd� |D �|��� ttdd� |D �|���� fdd�|D �}�fdd�|D �}� fdd�|D �}|||fS )Nc S � g | ]}|j �qS r )r) )�.0�groupr r r �
<listcomp>f � z-Supervisor.diff_to_active.<locals>.<listcomp>c S r* r ��name�r+ �cfgr r r r- h r. c S r* r r/ r1 r r r r- i r. c � g | ] }|j � vr|�qS r r/ �r+ �cand��curdictr r r- k � c r3 r r/ r4 )�newdictr r r- l r8 c s"