�
܍~c" � � � d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dlm Z
ej e� � Z
dZej dej dej d iZd
� Zd� Zd� ZdS )
� N)�StringIO)�log)�util)�version� )z2Cloud-init %(version)s received SIGINT, exiting...� )z3Cloud-init %(version)s received SIGTERM, exiting...r )z3Cloud-init %(version)s received SIGABRT, exiting...r c �F � ||k s| sd S t j | � � }d|dz z }|� |�d|j �d�� � |� |�d|j �d�� � |� |�d|j �d�� � t
| j |dz ||� � d S )N� � z
Filename: �
z
Function: z
Line number: r )�inspect�getframeinfo�write�filename�function�lineno�
_pprint_frame�f_back)�frame�depth� max_depth�contents�
frame_info�prefixs �:/usr/lib/python3/dist-packages/cloudinit/signal_handler.pyr r s� � ��y��������%�e�,�,�J�
�E�A�I�
�F��N�N�����1D�1D�1D�E�F�F�F��N�N�����1D�1D�1D�E�F�F�F��N�N�F�F�F�J�4E�4E�4E�F�G�G�G��%�,��� �9�h�?�?�?�?�?� c �V � t | \ }}|dt j � � iz }t � � }|� d|z � � t |dt |� � t j |� � � ddt �� � t j |� � d S )Nr z%s
r TF)�console�stderrr )
�EXIT_FOR�vr�version_stringr r r �BACK_FRAME_TRACE_DEPTHr � multi_log�getvalue�LOG�sys�exit)�signumr �msg�rcr s r �_handle_exitr, * s� � ��� �I�S�"�
�)�R�.�0�0�1�
2�C��z�z�H��N�N�6�S�>�"�"�"��%��2�H�=�=�=��N�8�$�$�&�&��U��L�L�L�L��H�R�L�L�L�L�Lr c � � d} t � � � D ]}t j |t � � �| t t � � z
} | S )Nr )r �keys�signalr, �len)�
sigs_attachedr) s r �attach_handlersr2 4 sI � ��M��-�-�/�/� ,� ,���
�f�l�+�+�+�+��S��]�]�"�M��r )r
r/ r' |