<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p></p>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px;">
Sorry, my bad. I've got things mixed up&nbsp;and&nbsp;I've misdescribed the problem in commit message. In fact,&nbsp;problem was opposite to that.&nbsp;pidfiles actually contain no newlines. As seen in test.c, pids are written like that:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px;">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px;">
dprintf(fd, &quot;%d&quot;, pid)</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px;">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px;">
Hence, &quot;cat *.pid&quot; would produce a single undelimited string of numbers, like 1000110002100031000410005... and kill would obviously fail. It's possible to modify test.c instead to print newline after the pid. Then we would have no need to modify Makefiles.
 I used awk to print pids separated instead, to avoid editing the zdtm&nbsp;lib.</div>
<p></p>
<br>
<br>
<div style="color: rgb(0, 0, 0);">
<div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>От:</b> Pavel Emelianov<br>
<b>Отправлено:</b> 25 ноября 2016 г. 17:59<br>
<b>Кому:</b> Cyrill Gorcunov; crml<br>
<b>Копия:</b> Vitaly Ostrosablin; Andrey Vagin<br>
<b>Тема:</b> Re: [CRIU] [PATCH 1/3] tests: replace cat in Makefiles with awk</font>
<div>&nbsp;</div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText">On 11/25/2016 05:19 PM, Cyrill Gorcunov wrote:<br>
&gt; From: Vitaly Ostrosablin &lt;vostrosablin@virtuozzo.com&gt;<br>
&gt; <br>
&gt; cat outputs pidfiles with newlines at end,<br>
&gt; while we need them to be unsplitted for kill<br>
&gt; command to work.<br>
<br>
What's the environment in which kill doesn't work with \n-s?<br>
<br>
&gt; Signed-off-by: Vitaly Ostrosablin &lt;vostrosablin@virtuozzo.com&gt;<br>
&gt; Signed-off-by: Cyrill Gorcunov &lt;gorcunov@openvz.org&gt;<br>
&gt; ---<br>
&gt;&nbsp; test/zdtm/static/Makefile&nbsp;&nbsp;&nbsp;&nbsp; | 4 &#43;&#43;--<br>
&gt;&nbsp; test/zdtm/transition/Makefile | 4 &#43;&#43;--<br>
&gt;&nbsp; 2 files changed, 4 insertions(&#43;), 4 deletions(-)<br>
&gt; <br>
&gt; diff --git a/test/zdtm/static/Makefile b/test/zdtm/static/Makefile<br>
&gt; index 6d8cd755fe22..4bafc10e373a 100644<br>
&gt; --- a/test/zdtm/static/Makefile<br>
&gt; &#43;&#43;&#43; b/test/zdtm/static/Makefile<br>
&gt; @@ -342,7 &#43;342,7 @@ start:&nbsp;&nbsp;&nbsp; $(PID) $(STATE)<br>
&gt;&nbsp; check_start: $(PID:%.pid=%.is_running)<br>
&gt;&nbsp; <br>
&gt;&nbsp; stop:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(STATE_OUT)<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; -kill -TERM `cat *.pid`<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; -kill -TERM `awk '{print}' *.pid`<br>
&gt;&nbsp; <br>
&gt;&nbsp; WAIT_TIME=240<br>
&gt;&nbsp; %.stop:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %.pid %<br>
&gt; @@ -360,7 &#43;360,7 @@ WAIT_TIME=240<br>
&gt;&nbsp; wait_stop:<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=0; \<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while [ $$i -lt $(WAIT_TIME) ] ; do \<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kill -0 `cat *.pid 2&gt;/dev/null` 2&gt;/dev/null || break; \<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kill -0 `awk '{print}' *.pid 2&gt;/dev/null` 2&gt;/dev/null || break; \<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep 1; \<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=`expr $$i &#43; 1`; \<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; done<br>
&gt; diff --git a/test/zdtm/transition/Makefile b/test/zdtm/transition/Makefile<br>
&gt; index 8e82070f81e5..a5ca99fa215f 100644<br>
&gt; --- a/test/zdtm/transition/Makefile<br>
&gt; &#43;&#43;&#43; b/test/zdtm/transition/Makefile<br>
&gt; @@ -65,12 &#43;65,12 @@ start:&nbsp;&nbsp;&nbsp; $(PID)<br>
&gt;&nbsp; check_start: $(PID:%.pid=%.is_running)<br>
&gt;&nbsp; <br>
&gt;&nbsp; stop:<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; -kill -TERM `cat *.pid`<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; -kill -TERM `awk '{print}' *.pid`<br>
&gt;&nbsp; <br>
&gt;&nbsp; WAIT_TIME=10<br>
&gt;&nbsp; wait_stop:<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -for i in `seq 1 $(WAIT_TIME)`; do \<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kill -0 `cat *.pid 2&gt;/dev/null` 2&gt;/dev/null || break; \<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kill -0 `awk '{print}' *.pid 2&gt;/dev/null` 2&gt;/dev/null || break; \<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep 1; \<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; done<br>
&gt;&nbsp; <br>
&gt; <br>
<br>
</div>
</span></font></div>
</div>
</body>
</html>