
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
\¼meô  ã               @   s„   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ	 ej
eƒZdZejdejdejdiZd
d„ Zdd„ Zdd„ ZdS )é    N)ÚStringIO)Úutil)Úversioné   ú2Cloud-init %(version)s received SIGINT, exiting...é   ú3Cloud-init %(version)s received SIGTERM, exiting...ú3Cloud-init %(version)s received SIGABRT, exiting...c             C   s|   ||ks|  rd S t j| ƒ}d|d  }|jd||jf ƒ |jd||jf ƒ |jd||jf ƒ t| j|d ||ƒ d S )Nú é   z%sFilename: %s
z%sFunction: %s
z%sLine number: %s
r   )ÚinspectZgetframeinfoÚwriteÚfilenameZfunctionÚlinenoÚ_pprint_frameÚf_back)ÚframeÚdepthZ	max_depthÚcontentsZ
frame_infoÚprefix© r   ú$/usr/lib/python3.6/signal_handler.pyr      s    
r   c             C   sb   t |  \}}|dtjƒ i }tƒ }|jd| ƒ t|dt|ƒ tj|j	ƒ ddt
d� tj|ƒ d S )Nr   z%s
r   TF)ZconsoleÚstderrÚlog)ÚEXIT_FORÚvrZversion_stringr   r   r   ÚBACK_FRAME_TRACE_DEPTHr   Z	multi_logÚgetvalueÚLOGÚsysÚexit)Úsignumr   ÚmsgZrcr   r   r   r   Ú_handle_exit)   s    r#   c              C   s2   d} xt jƒ D ]}tj|tƒ qW | tt ƒ7 } | S )Nr   )r   ÚkeysÚsignalr#   Úlen)Zsigs_attachedr!   r   r   r   Úattach_handlers3   s
    r'   )r   r   )r   r   )r	   r   )r   Zloggingr%   r   Úior   Z	cloudinitr   r   r   Z	getLoggerÚ__name__r   r   ÚSIGINTÚSIGTERMÚSIGABRTr   r   r#   r'   r   r   r   r   Ú<module>   s   


