
­­­­­­­­­­­­­­­­­­
<!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   


