3 \�me� � @ s� d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ ej e�ZdZ ejdejdejdiZd d� Zdd � Zdd� ZdS )� 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| ||ks| rd S t j| �}d|d }|jd||jf � |jd||jf � |jd||jf � t| j|d ||� d S )N� � z%sFilename: %s z%sFunction: %s z%sLine number: %s r )�inspectZgetframeinfo�write�filenameZfunction�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 | \}}|dtj� i }t� }|jd| � t|dt|� tj|j � ddt d� tj|� d S )Nr z%s r TF)Zconsole�stderr�log) �EXIT_FOR�vrZversion_stringr r r �BACK_FRAME_TRACE_DEPTHr Z multi_log�getvalue�LOG�sys�exit)�signumr �msgZrcr r r r �_handle_exit) s r# c C s2 d} xt j� D ]}tj|t� qW | tt �7 } | S )Nr )r �keys�signalr# �len)Z sigs_attachedr! r r r �attach_handlers3 s r'