Edit File: supervisord.cpython-36.pyc
3 �k�`�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 )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� 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 �!/usr/lib/python3.6/supervisord.py�__init__6 s zSupervisor.__init__c C sV | j js| j j� | j j� | j jr.| j j� | j j� | j jsJ| j j� | j� d S )N) r �firstZcleanup_fdsZset_uid_or_exitZset_rlimits_or_exitZmake_loggerZ nocleanupZclear_autochildlogdir�run)r r r r �main; s zSupervisor.mainc C s� i | _ d | _tj� zdx| jjD ]}| j|� q W | jj| � | jj� | jj rd| jj rd| jj� | jj� | j � W d | jj� X d S )N)r �stop_groupsr �clearr �process_group_configs�add_process_groupZopenhttpserversZ setsignalsZnodaemonr Z daemonizeZ write_pidfile� runforeverZcleanup)r �configr r r r P s zSupervisor.runc s� | j j}dd� | jj� D �}ttdd� |D �|��� ttdd� |D �|���� fdd�|D �}�fdd�|D �}� fdd�|D �}|||fS )Nc S s g | ] }|j �qS r )r )�.0�groupr r r � <listcomp>d s z-Supervisor.diff_to_active.<locals>.<listcomp>c S s g | ] }|j �qS r )�name)r �cfgr r r r f s c S s g | ] }|j �qS r )r )r r r r r r g s c s g | ]}|j � kr|�qS r )r )r �cand)�curdictr r r i s c s g | ]}|j � kr|�qS r )r )r r )�newdictr r r j s c s"