<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Ограничение времени исполнения в shell</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7361.html</link>
    <description>Здравствуйте&lt;br&gt;Подскажите пожалуйста есть ли способ ограничить время выполнения команды по времени, желательно в shell, или на худой конец в perl. Есть сценарий который ходит по каталогам и выполняет некоторые операции. Иногда эти операции могут подвиснуть, по независимым причинам. Хотелось бы ограничить время на эти операции, типа не успелось за пять минут, так и хрен с ним, идём в следующий каталог. Саму подвисшую операцию конечно неплохо прибить.&lt;br&gt;</description>

<item>
    <title>Ограничение времени исполнения в shell (madskull)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7361.html#5</link>
    <pubDate>Mon, 26 May 2008 12:03:12 GMT</pubDate>
    <description>&amp;gt;Здравствуйте &lt;br&gt;&amp;gt;Подскажите пожалуйста есть ли способ ограничить время выполнения команды по времени, желательно &lt;br&gt;&amp;gt;в shell, или на худой конец в perl. Есть сценарий который &lt;br&gt;&amp;gt;ходит по каталогам и выполняет некоторые операции. Иногда эти операции могут &lt;br&gt;&amp;gt;подвиснуть, по независимым причинам. Хотелось бы ограничить время на эти операции, &lt;br&gt;&amp;gt;типа не успелось за пять минут, так и хрен с ним, &lt;br&gt;&amp;gt;идём в следующий каталог. Саму подвисшую операцию конечно неплохо прибить. &lt;br&gt;&lt;br&gt;(Задача решена? А то подняли тему через две недели, думай теперь... :) )&lt;br&gt;&lt;br&gt;На самом деле все просто:&lt;br&gt;&#091;code&#093;&lt;br&gt;my_process &amp; p1=$! # рабочий процесс&lt;br&gt;sleep 5 &amp; p2=$! # типа таймер &lt;br&gt;while &#091; -d /proc/$p1 -a -d /proc/$p2 &#093;; do sleep 1; done  # ждем хоть кого-нить...&lt;br&gt;&#123; kill $p1; kill $p2; &#125; &amp;&amp;gt;/dev/null # и убиваем всех&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Ограничение времени исполнения в shell (yuuum)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7361.html#4</link>
    <pubDate>Fri, 23 May 2008 09:05:48 GMT</pubDate>
    <description>&amp;gt;Здравствуйте &lt;br&gt;&amp;gt;Подскажите пожалуйста есть ли способ ограничить время выполнения команды по времени, желательно &lt;br&gt;&amp;gt;в shell, или на худой конец в perl. Есть сценарий который &lt;br&gt;&amp;gt;ходит по каталогам и выполняет некоторые операции. Иногда эти операции могут &lt;br&gt;&amp;gt;подвиснуть, по независимым причинам. Хотелось бы ограничить время на эти операции, &lt;br&gt;&amp;gt;типа не успелось за пять минут, так и хрен с ним, &lt;br&gt;&amp;gt;идём в следующий каталог. Саму подвисшую операцию конечно неплохо прибить. &lt;br&gt;&lt;br&gt;есть порт во фре:&lt;br&gt;http://www.freebsd.org/cgi/url.cgi?ports/sysutils/timelimit/pkg-descr&lt;br&gt;будет работать и под линукс(исходники по ссылке)&lt;br&gt;</description>
</item>

<item>
    <title>Ограничение времени исполнения в shell (distant.admin)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7361.html#3</link>
    <pubDate>Mon, 12 May 2008 11:28:20 GMT</pubDate>
    <description>&amp;gt;Ага. Можете запостить какой-нибудь пример как делать таймер? и как определить имя &lt;br&gt;&amp;gt;запускаемого дочернего процесса? &lt;br&gt;&amp;gt;Себя, родительский процесс, убивать не надо. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;один процесс - родительский (он же таймер) запускает в фоновом режиме саму &lt;br&gt;&amp;gt;&amp;gt;программу - когда  время вышло убивает сначала дочку потом себя &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&lt;br&gt;Примерно так:&lt;br&gt;&lt;br&gt;#!/usr/local/bin/perl -w&lt;br&gt;&lt;br&gt;my $pid = fork();&lt;br&gt;if (not defined $pid) &#123;&lt;br&gt;    print &quot;resources not avilable.&#092;n&quot;;&lt;br&gt;&#125;&lt;br&gt;if ($pid == 0) &#123;&lt;br&gt;    print &quot;CHILD0 == &#092;$pid: $pid and &#092;$&#092;$: $$ &#092;n&quot;;&lt;br&gt;    sleep 20;&lt;br&gt;    print &quot;CHILD1 == &#092;$pid: $pid and &#092;$&#092;$: $$&#092;n&quot;;&lt;br&gt;    exit(0);&lt;br&gt;&#125;&lt;br&gt;if (! $pid == 0)&#123;&lt;br&gt;    print &quot;PARENT == &#092;$pid: $pid and &#092;$&#092;$: $$&#092;n&quot;;&lt;br&gt;    if (defined $pid)&#123;&lt;br&gt;        sleep 10;&lt;br&gt;        print &quot;kill CHILD $pid&#092;n&quot;;&lt;br&gt;        kill $pid;&lt;br&gt;    &#125;&lt;br&gt;&#125;&lt;br&gt;</description>
</item>

<item>
    <title>Ограничение времени исполнения в shell (Agp)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7361.html#2</link>
    <pubDate>Mon, 12 May 2008 05:12:12 GMT</pubDate>
    <description>Ага. Можете запостить какой-нибудь пример как делать таймер? и как определить имя запускаемого дочернего процесса?&lt;br&gt;Себя, родительский процесс, убивать не надо.&lt;br&gt;&lt;br&gt;&amp;gt;один процесс - родительский (он же таймер) запускает в фоновом режиме саму &lt;br&gt;&amp;gt;программу - когда  время вышло убивает сначала дочку потом себя &lt;br&gt;&amp;gt;</description>
</item>

<item>
    <title>Ограничение времени исполнения в shell (ффф)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7361.html#1</link>
    <pubDate>Sun, 11 May 2008 10:38:34 GMT</pubDate>
    <description>один процесс - родительский (он же таймер) запускает в фоновом режиме саму программу - когда  время вышло убивает сначала дочку потом себя&lt;br&gt;</description>
</item>

</channel>
</rss>
