<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert Zchn";
        margin:0cm;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLVorformatiertZchn
        {mso-style-name:"HTML Vorformatiert Zchn";
        mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert";
        font-family:Consolas;
        mso-fareast-language:DE;}
span.E-MailFormatvorlage21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hello,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">not a KEMI python expert, but what you are trying to do (adding a process to Kamailio and then also maintaining it during run-time) could be probably better done from the C module level.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">You can look to the several modules that starts their own children worker processes to get an idea how to do it.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Cheers,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">-- <o:p>
</o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning Westerholt –
</span><span style="mso-fareast-language:EN-US"><a href="https://skalatan.de/blog/"><span lang="EN-GB" style="color:#0563C1">https://skalatan.de/blog/</span></a></span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Kamailio services –
</span><span style="mso-fareast-language:EN-US"><a href="https://gilawa.com/"><span lang="EN-GB" style="color:#0563C1">https://gilawa.com</span></a></span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-left:35.4pt"><b>From:</b> sr-users <sr-users-bounces@lists.kamailio.org>
<b>On Behalf Of </b>Marat Gareev<br>
<b>Sent:</b> Wednesday, October 26, 2022 12:19 PM<br>
<b>To:</b> miconda@gmail.com<br>
<b>Cc:</b> Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org><br>
<b>Subject:</b> Re: [SR-Users] Kill child process created by app_python module<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Hello again,<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Any advice will be appreciated.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Thanks<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">чт, 15 сент. 2022 г. в 18:10, Marat Gareev <<a href="mailto:maratkin94@gmail.com">maratkin94@gmail.com</a>>:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Hello Daniel,<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Probably, the process is not killed, because the child processes of the python module are not included in the kamailio children list.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">How can I register an event route in KEMI script?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><a href="https://kamailio.org/docs/tutorials/devel/kamailio-kemi-framework/kemi/#python-kemi-interpreter" target="_blank">Doc</a> says:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal" style="margin-left:35.4pt">event route callback - the name of the Python function to be executed instead of module specific event_route blocks is provided via event_callback parameter of that module<o:p></o:p></p>
</blockquote>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">but <a href="https://www.kamailio.org/docs/modules/devel/modules/evrexec.html" target="_blank">
evrexec</a> doesn't have an event_callback parameter.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I tried to set up exec parameter (_update is Python function)<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt"><span style="font-size:10.5pt;font-family:"Courier New";color:blue">modparam</span><span style="font-size:10.5pt;font-family:"Courier New";color:black">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#A31515">"evrexec"</span><span style="font-size:10.5pt;font-family:"Courier New";color:black">,
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#A31515">"exec"</span><span style="font-size:10.5pt;font-family:"Courier New";color:black">,
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#A31515">"name=_update;workers=1;"</span><span style="font-size:10.5pt;font-family:"Courier New";color:black">)<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">and got warning<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt"><span style="font-size:10.5pt;font-family:"Courier New";color:black">WARNING: evrexec [evrexec_mod.c:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#098658">180</span><span style="font-size:10.5pt;font-family:"Courier New";color:black">]:
 evrexec_process(): empty event route block [_update]<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">ср, 14 сент. 2022 г. в 16:21, Daniel-Constantin Mierla <<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>>:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<p style="margin-left:35.4pt">Hello,<o:p></o:p></p>
<p style="margin-left:35.4pt">not sure I got right what is the issue and what would be a solution for it, but maybe you can leverage evrexec to create a child process and by that keep it in kamailio children list.<o:p></o:p></p>
<p style="margin-left:35.4pt">Cheers,<br>
Daniel<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">On 13.09.22 19:15, Marat Gareev wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Hello! <o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I'm trying to use app_python module to perform periodic actions.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">This is a simple python code<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">def</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><b><span style="font-size:10.5pt;font-family:"Courier New";color:#AA3731">_update</span></b><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">():</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#4B69C6">while</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">True</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#333333">_action</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">()</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#333333">time</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">sleep</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">60</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">class</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><b><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">noop_handler</span></b><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">def</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><b><span style="font-size:10.5pt;font-family:"Courier New";color:#AA3731">child_init</span></b><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">self</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">,</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">rank</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">):</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#4B69C6">return</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">0</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">def</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><b><span style="font-size:10.5pt;font-family:"Courier New";color:#AA3731">ksr_request_route</span></b><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">self</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">,</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">msg</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">):</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#4B69C6">return</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">1</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">def</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><b><span style="font-size:10.5pt;font-family:"Courier New";color:#AA3731">mod_init</span></b><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">():</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<i><span style="font-size:10.5pt;font-family:"Courier New";color:#AAAAAA"># signal.signal(signal.SIGTERM, signal.default_int_handler)</span></i><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">proc</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">=</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> multiprocessing</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">Process</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">target</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">=</span><b><span style="font-size:10.5pt;font-family:"Courier New";color:#AA3731">_update</span></b><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<i><span style="font-size:10.5pt;font-family:"Courier New";color:#AAAAAA"># proc.daemon = True</span></i><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">proc</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">start</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">()</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#333333">ksr</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">notice</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">('</span><span style="font-size:10.5pt;font-family:"Courier New";color:#448C27">Forked
 process </span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">{}</span><span style="font-size:10.5pt;font-family:"Courier New";color:#448C27"> to update</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">\n'.</span><b><span style="font-size:10.5pt;font-family:"Courier New";color:#AA3731">format</span></b><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">proc</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">pid</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">))</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#4B69C6">return</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><b><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">noop_handler</span></b><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">()</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">After killing kamailio processes with SIGTERM signal (<span style="font-size:10.5pt;font-family:"Courier New";color:#333333;background:whitesmoke">killall kamailio</span>) I see zombie process.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">And if I try to process the signal in daemon mode (see the comments in the snippet above), I get critical errors in the logs and still see processes:<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">0</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">37001</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">NOTICE</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777"><</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">></span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">[</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">/</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">kemi</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">c</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">124</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">]:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 sr_kemi_core_notice</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">():</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> Forked process
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">37002</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> to update<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">1</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">37003</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">ERROR</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777"><</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">></span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">[</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">/</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">udp_server</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">c</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">464</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">]:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 udp_rcv_loop</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">():</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> recvfrom</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:[</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">4</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">]</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 Interrupted system call<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#333333">Process Process</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">-</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">1</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#333333">Traceback </span>
<span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">most recent call last</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">):</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#333333">File </span>
<span style="font-size:10.5pt;font-family:"Courier New";color:#777777">"</span><span style="font-size:10.5pt;font-family:"Courier New";color:#448C27">/usr/lib64/python2.7/multiprocessing/process.py</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">",</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 line </span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">258</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">,</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">in</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> _bootstrap<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">self</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">run</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">()</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#333333">File </span>
<span style="font-size:10.5pt;font-family:"Courier New";color:#777777">"</span><span style="font-size:10.5pt;font-family:"Courier New";color:#448C27">/usr/lib64/python2.7/multiprocessing/process.py</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">",</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 line </span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">114</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">,</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">in</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> run<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">self</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">_target</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(*</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">self</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">_args</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">,</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">**</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">self</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">_kwargs</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#333333">File </span>
<span style="font-size:10.5pt;font-family:"Courier New";color:#777777">"</span><span style="font-size:10.5pt;font-family:"Courier New";color:#448C27">/tmp/script.py</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">",</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 line </span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">155</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">,</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">in</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> _update<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#333333">time</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">sleep</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">period</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">KeyboardInterrupt</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">0</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">37001</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">ALERT</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777"><</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">></span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">[</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">main</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">c</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">774</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">]:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 handle_sigs</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">():</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> child process
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">37002</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> exited normally</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">,</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 status</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">=</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">1</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">0</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">37001</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">INFO</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777"><</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">></span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">[</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">main</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">c</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">802</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">]:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 handle_sigs</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">():</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> terminating due to
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">SIGCHLD</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">1</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">37003</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">ERROR</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777"><</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">></span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">[</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">/</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">udp_server</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">c</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">464</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">]:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 udp_rcv_loop</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">():</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> recvfrom</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:[</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">4</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">]</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 Interrupted system call<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">8</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">37014</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">CRITICAL</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777"><</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">></span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">[</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">/</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">pass_fd</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">c</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">277</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">]:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 receive_fd</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">():</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">EOF</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> on
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">4</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt;line-height:14.25pt;background:whitesmoke">
<span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">1</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">(</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">37003</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">)</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#7A3E9D">ERROR</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777"><</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">></span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">[</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">core</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">/</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">udp_server</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">.</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">c</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">464</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">]:</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 udp_rcv_loop</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">():</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333"> recvfrom</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">:[</span><span style="font-size:10.5pt;font-family:"Courier New";color:#9C5D27">4</span><span style="font-size:10.5pt;font-family:"Courier New";color:#777777">]</span><span style="font-size:10.5pt;font-family:"Courier New";color:#333333">
 Interrupted system call<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">So, how I can kill child process by SIGTERM signal?<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
<pre style="margin-left:35.4pt">__________________________________________________________<o:p></o:p></pre>
<pre style="margin-left:35.4pt">Kamailio - Users Mailing List - Non Commercial Discussions<o:p></o:p></pre>
<pre style="margin-left:35.4pt">  * <a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><o:p></o:p></pre>
<pre style="margin-left:35.4pt">Important: keep the mailing list in the recipients, do not reply only to the sender!<o:p></o:p></pre>
<pre style="margin-left:35.4pt">Edit mailing list options or unsubscribe:<o:p></o:p></pre>
<pre style="margin-left:35.4pt">  * <a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><o:p></o:p></pre>
</blockquote>
<pre style="margin-left:35.4pt">-- <o:p></o:p></pre>
<pre style="margin-left:35.4pt">Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank">www.asipto.com</a><o:p></o:p></pre>
<pre style="margin-left:35.4pt"><a href="http://www.twitter.com/miconda" target="_blank">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank">www.linkedin.com/in/miconda</a><o:p></o:p></pre>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</body>
</html>