<br><div class="gmail_quote">3 мая 2010 г. 8:28 пользователь Michael Pozhidaev <span dir="ltr">&lt;<a href="mailto:msp@altlinux.ru">msp@altlinux.ru</a>&gt;</span> написал:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Привет всем!<br>
<br>
В мане credentials(7) говориться следующее:<br>
<br>
the shell creates a new process group for<br>
       the process(es) used to execute single command or pipeline (e.g., the  two  pro‐<br>
       cesses  created  to execute the command &quot;ls | wc&quot; are placed in the same process<br>
       group).<br>
<br>
Тем не менее, по факту /bin/sh -c в альте даже и не думает порождать<br>
новую группу процессов, ни когда запускаются несколько команд через<br>
трубу, ни одна команда.<br></blockquote><div><br>Интересно, а зачем это понадобилось?<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
Вопрос в том: как оно должно быть и в каких ситуациях. Может быть<br>
написанное в мане не относится к -c?</blockquote><div><br>Написанное относится к interactive shell. Все процессы в pipeline интерактивного<br>шелла действительно будут находиться в новой группе, лидером которой будет<br>
первый процесс в pipeline:<br>    $ ps -o pid,ppid,pgid,cmd | cat<br>      PID  PPID  PGID CMD<br>      6858  6856  6858 bash <br>      6982  6858  6982 ps -o pid,ppid,pgid,cmd <br>      6983  6858  6982 cat<br>Здесь ps является лидером группы процессов, состоящей из процессов 6982 и 6983.<br>
<br>Команда &quot;bash -c&quot; является просто еще одним членом pipeline, поэтому, например,<br>$ /bin/sleep 1 | bash -c &#39;ps -o pid,ppid,pgid,cmd | cat&#39;<br>  PID  PPID  PGID CMD<br> 6858  6856  6858 bash <br> 6993  6858  6993 /bin/sleep 1 <br>
 6994  6858  6993 bash -c ps -o pid,ppid,pgid,cmd | cat <br> 6995  6994  6993 ps -o pid,ppid,pgid,cmd <br> 6996  6994  6993 cat<br>Здесь bash создает новую группу процессов (pgrp=6993), лидером которой<br>является первый процесс в pipeline - /bin/sleep.<br>
</div></div>