Repository URL to install this package:
|
Version:
4.2.1 ▾
|
U
|^®\d ã @ sL d Z ddlZddlZddlZddlZG dd dZdd ZedkrHe dS )z{ An executable which proxies for a subprocess; upon a signal, it sends that
signal to the process identified by a pidfile. é Nc @ s@ e Zd ZdZdd Zdd Zdd Zdd Zd
d Zdd
Z dS )ÚPidProxyNc C sl | ¡ z4|d |dd
| _}tj |d ¡| _|| _W n* ttfk
rf | ¡ t
d¡ Y nX d S )Né é r )Ú
setsignalsÚpidfileÚosÚpathÚabspathÚcommandÚcmdargsÚ
ValueErrorÚ
IndexErrorÚusageÚsysÚexit)ÚselfÚargsr © r ú"./build/lib/supervisor/pidproxy.pyÚ__init__
s
zPidProxy.__init__c C s\ t t j| j| j¡| _t d¡ zt dt j ¡d }W n t
k
rN d }Y nX |rqXqd S )Né éÿÿÿÿr )r ÚspawnvÚP_NOWAITr
r ÚpidÚtimeÚsleepÚwaitpidÚWNOHANGÚOSError)r r r r r Úgo s
zPidProxy.goc C s t d d S )Nz4pidproxy.py <pidfile name> <command> [<cmdarg1> ...])Úprint©r r r r r " s zPidProxy.usagec C st t t j| j¡ t t j| j¡ t t j| j¡ t t j| j¡ t t j| j¡ t t j| j¡ t t j| j ¡ d S ©N)
ÚsignalÚSIGTERMÚpasstochildÚSIGHUPÚSIGINTÚSIGUSR1ÚSIGUSR2ÚSIGQUITÚSIGCHLDÚreapr" r r r r % s zPidProxy.setsignalsc C s d S r# r )r ÚsigÚframer r r r- . s z
PidProxy.reapc C sx z,t | jd}t| ¡ ¡ }W 5 Q R X W n td| j Y d S X t ||¡ |tj tj
tjfkrtt
d¡ d S )NÚrzCan't read child pidfile %s!r )Úopenr ÚintÚreadÚstripr! r Úkillr$ r% r( r+ r r )r r. r/ Úfr r r r r&