<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: как убить все дочерние процессы</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77819.html</link>
    <description>Запускаем скрипт, скрипт пускает чтонить, например игрушку.&lt;br&gt;Как убить порожденные процессы? Все дерево процессов.&lt;br&gt;&lt;br&gt;В принципе &quot;один слой&quot; можно убить так:&lt;br&gt;pkill -P пид_скрипта&lt;br&gt;Но что если есть &quot;второй слой&quot;, третий? Как замочить их всех?&lt;br&gt;&lt;br&gt;И есть ли какой нибудь системный вызов для этого? Что то типа &lt;br&gt;bool killthemall(int pid);&lt;br&gt;=))))&lt;br&gt;</description>

<item>
    <title>как убить все дочерние процессы (Keeper)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77819.html#7</link>
    <pubDate>Wed, 12 Dec 2007 06:56:30 GMT</pubDate>
    <description>Программку htop ещё можно попробовать.&lt;br&gt;</description>
</item>

<item>
    <title>как убить все дочерние процессы (angra)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77819.html#6</link>
    <pubDate>Wed, 12 Dec 2007 02:52:05 GMT</pubDate>
    <description>звиняюсь сделал глупейшую ошибку. Надо &lt;br&gt;perl -ne &apos;print &quot;$1&#092;n&quot; while /&#092;((&#092;d+)&#092;)/g;&apos;&lt;br&gt;или&lt;br&gt;perl -ne &apos;print &quot;$_&#092;n&quot; foreach /&#092;((&#092;d+)&#092;)/g;&apos;&lt;br&gt;то есть либо $1+while либо $_+foreach, но не $1+foreach иначе будет ерунда когда несколько процессов в одной строке вывода pstree.&lt;br&gt;</description>
</item>

<item>
    <title>как убить все дочерние процессы (ipmanyak)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77819.html#5</link>
    <pubDate>Tue, 11 Dec 2007 19:46:59 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;Как убить порожденные процессы? Все дерево процессов. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;В принципе &quot;один слой&quot; можно убить так: &lt;br&gt;&amp;gt;pkill -P пид_скрипта &lt;br&gt;&amp;gt;Но что если есть &quot;второй слой&quot;, третий? Как замочить их всех? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;И есть ли какой нибудь системный вызов для этого? Что то типа &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;bool killthemall(int pid); &lt;br&gt;&amp;gt;=)))) &lt;br&gt;&lt;br&gt;killall  имя_родителя_процесса&lt;br&gt;не подойдет ? &lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>как убить все дочерние процессы (AITech)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77819.html#4</link>
    <pubDate>Tue, 11 Dec 2007 19:20:37 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;$ pstree -p 3654&amp;#124; perl -ne &apos;print &quot;$1&#092;n&quot; foreach /&#092;((&#092;d+)&#092;)/g;&apos; &lt;br&gt;&amp;gt;3665 &lt;br&gt;&amp;gt;3665 &lt;br&gt;&amp;gt;3666 &lt;br&gt;&amp;gt;3684 &lt;br&gt;&amp;gt;3685 &lt;br&gt;&amp;gt;3747 &lt;br&gt;&amp;gt;3756 &lt;br&gt;&amp;gt;3769 &lt;br&gt;&amp;gt;Заменяем print на &#096;kill -9 $1&#096; и все умрет :) &lt;br&gt;&lt;br&gt;СПАСИБО!&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>как убить все дочерние процессы (angra)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77819.html#3</link>
    <pubDate>Tue, 11 Dec 2007 01:56:03 GMT</pubDate>
    <description>&amp;gt;Должна но не приводит =) &lt;br&gt;&lt;br&gt;Я же сказал при условии вменяемости процессов :)&lt;br&gt;&lt;br&gt;&amp;gt;З.Ы. желания нисколько не странные. Пишу клиента для компьютерного зала. Нужно убить &lt;br&gt;&amp;gt;одну запущенную игру, при запуске другой. &lt;br&gt;&lt;br&gt;напишите простой bash или perl скрипт, который убивает всю ветку. Для поиска всех pid может оказаться полезной pstree. Например&lt;br&gt;$pstree -p 3654&lt;br&gt;firefox-bin(3654)-+-&#123;firefox-bin&#125;(3665)&lt;br&gt;                  &amp;#124;-&#123;firefox-bin&#125;(3666)&lt;br&gt;                  &amp;#124;-&#123;firefox-bin&#125;(3684)&lt;br&gt;                  &amp;#124;-&#123;firefox-bin&#125;(3685)&lt;br&gt;                  &amp;#124;-&#123;firefox-bin&#125;(3747)&lt;br&gt;                  &amp;#124;-&#123;firefox-bin&#125;(3756)&lt;br&gt;                  &#096;-&#123;firefox-bin&#125;(3769)&lt;br&gt;$ pstree -p 3654&amp;#124; perl -ne &apos;print &quot;$1&#092;n&quot; foreach /&#092;((&#092;d+)&#092;)/g;&apos;&lt;br&gt;3665&lt;br&gt;3665&lt;br&gt;3666&lt;br&gt;3684&lt;br&gt;3685&lt;br&gt;3747&lt;br&gt;3756&lt;br&gt;3769&lt;br&gt;Заменяем print на &#096;kill -9 $1&#096; и все умрет :)&lt;br&gt;</description>
</item>

<item>
    <title>как убить все дочерние процессы (AITech)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77819.html#2</link>
    <pubDate>Mon, 10 Dec 2007 20:02:21 GMT</pubDate>
    <description>&amp;gt;&amp;gt;И есть ли какой нибудь системный вызов для этого? Что то типа &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;А зачем? У вас какие-то странные желания. Если все процессы вменяемые, то &lt;br&gt;&amp;gt;посылка TERM(но не KILL) родителському должна привести к схлопыванию всего дерева. &lt;br&gt;&amp;gt;Если же по каким-либо причинам корректного завершения по TERM не происходит, &lt;br&gt;&amp;gt;то после убийства корневого через KILL все остальные останутся зомбями и &lt;br&gt;&amp;gt;init их сам придушит, а если не придушит, то просто грепаем &lt;br&gt;&amp;gt;по Zz вывод ps и отдаем KILL всем зомбям. Альтернативно можно &lt;br&gt;&amp;gt;конечно написать простенький скрипт, который будет проходить по дереву процессов начиная &lt;br&gt;&amp;gt;от какого-то PID и посылать KILL всем потомкам. &lt;br&gt;&lt;br&gt;Должна но не приводит =)&lt;br&gt;Например в скрипте прописываем запуск популярной игрушки &lt;br&gt;/usr/games/wormux&lt;br&gt;запускаем, видим в процессах&lt;br&gt;PID - PPID - NAME&lt;br&gt;555 - xxx - bash&lt;br&gt;556 - 555 - wormux&lt;br&gt;&lt;br&gt;убиваем kill -s TERM 555, wormux не реагирует, можно играть дальше.&lt;br&gt;&lt;br&gt;З.Ы. желания нисколько не странные. Пишу клиента для компьютерного зала. Нужно убить одну запущенную</description>
</item>

<item>
    <title>как убить все дочерние процессы (angra)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77819.html#1</link>
    <pubDate>Mon, 10 Dec 2007 19:22:56 GMT</pubDate>
    <description>&amp;gt;И есть ли какой нибудь системный вызов для этого? Что то типа &lt;br&gt;&lt;br&gt;А зачем? У вас какие-то странные желания. Если все процессы вменяемые, то посылка TERM(но не KILL) родителському должна привести к схлопыванию всего дерева. Если же по каким-либо причинам корректного завершения по TERM не происходит, то после убийства корневого через KILL все остальные останутся зомбями и init их сам придушит, а если не придушит, то просто грепаем по Zz вывод ps и отдаем KILL всем зомбям. Альтернативно можно конечно написать простенький скрипт, который будет проходить по дереву процессов начиная от какого-то PID и посылать KILL всем потомкам. &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
