<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: использование fork</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9464.html</link>
    <description>Добрый день! Использую небольшой простенький скрипт для сбора логов.&lt;br&gt; for (&#064;tb) &#123;&lt;br&gt;my $ftp=Net::FTP-&amp;gt;new($_) or die &quot;Can&apos;t connect: $&#064;&#092;n&quot;;&lt;br&gt;$ftp-&amp;gt;login($user,$password) or die $ftp-&amp;gt;message;&lt;br&gt;$ftp-&amp;gt;get($log_fl, $_);&lt;br&gt;$ftp-&amp;gt;quit;&lt;br&gt;&#125;&lt;br&gt;Где в &#064;tb хранятся хосты для подключений. &lt;br&gt;Скрипт работает, логи собирает. Но работает очень медленно. Подскажите пожалуйста как можно использовать функцию fork(). Ведь как я понял из описания, она запускает дочерний процесс, который начинает выполнятся с места вызова. Я пока не понимаю, каким образом можно использовать эту функцию для множественного подключения к ftp, каким образом контролировать какой из процессов использует ту или иную запись с массива хостов? Или есть какое то другое решение? Спасибо. &lt;br&gt;</description>

<item>
    <title>использование fork (ACCA)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9464.html#4</link>
    <pubDate>Wed, 23 May 2012 18:39:40 GMT</pubDate>
    <description>&amp;gt; -MCPAN -e shell, с дальнейшим install ).  Существуют ли приложения, &lt;br&gt;&amp;gt; пакеты или другие решения для того, чтобы можно было просто распространять &lt;br&gt;&amp;gt; скрипт для других людей. Т.е. создать наподобие установочного приложения с учетом &lt;br&gt;&amp;gt; всех зависимостей скрипта.&lt;br&gt;&lt;br&gt;В стандартном Perl - нет. Это задача package manager.&lt;br&gt;Под виндой нет никакого, поэтому для неё сделали Perl Package Manager - PPM. ActiveState поддерживает довольно удобный репозиторий.&lt;br&gt;</description>
</item>

<item>
    <title>использование fork (Trewsa)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9464.html#3</link>
    <pubDate>Wed, 23 May 2012 13:05:32 GMT</pubDate>
    <description>Спасибо за ответы! Немного подредактировал, все ОК! Работает. И чтобы не плодить топиков задам еще один вопрос здесь. В  скрипте также используются модули, которые не входят в стандартную установку(использовался cygwin, в нем perl -MCPAN -e shell, с дальнейшим install ).  Существуют ли приложения, пакеты или другие решения для того, чтобы можно было просто распространять скрипт для других людей. Т.е. создать наподобие установочного приложения с учетом всех зависимостей скрипта.    &lt;br&gt;</description>
</item>

<item>
    <title>использование fork (ACCA)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9464.html#2</link>
    <pubDate>Wed, 23 May 2012 12:40:49 GMT</pubDate>
    <description>Только аккуратно. На каждый элемент &#064;tb получаешь процесс. Если там сотни адресов, то устроишь fork bomb. Установи границы разумного.&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;my $CLIMIT = 50; # 50 children limit&lt;br&gt;&lt;br&gt; for (&#064;tb) &#123; &lt;br&gt;    my $pid = fork() // die &quot;fork не отработал: $!&quot;;&lt;br&gt;    unless ( $pid ) &#123; &lt;br&gt;        my $ftp=Net::FTP-&amp;gt;new($_) or die &quot;Can&apos;t connect: $&#064;&#092;n&quot;; &lt;br&gt;        $ftp-&amp;gt;login($user,$password) or die $ftp-&amp;gt;message; &lt;br&gt;        $ftp-&amp;gt;get($log_fl, $_); &lt;br&gt;        $ftp-&amp;gt;quit; &lt;br&gt;        exit( 0 ); &lt;br&gt;    &#125; &lt;br&gt;&lt;br&gt;    $CLIMIT--;&lt;br&gt;    wait() unless $CLIMIT;&lt;br&gt;    $CLIMIT++;&lt;br&gt; &#125; &lt;br&gt;&lt;br&gt;while (wait()&amp;gt; 0) &#123; ; &#125;   # Wait for all children to finish&lt;br&gt;&#091;/code&#093;&lt;br&gt;</description>
</item>

<item>
    <title>использование fork (cryo)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9464.html#1</link>
    <pubDate>Wed, 23 May 2012 08:55:27 GMT</pubDate>
    <description>&lt;br&gt;for (&#064;tb) &#123; &lt;br&gt;   my $pid = fork();&lt;br&gt;   die &quot;fork не отработал: $!&quot;&lt;br&gt;       unless defined $pid;&lt;br&gt;   unless ( $pid ) &#123;&lt;br&gt;       my $ftp=Net::FTP-&amp;gt;new($_) or die &quot;Can&apos;t connect: $&#064;&#092;n&quot;; &lt;br&gt;       $ftp-&amp;gt;login($user,$password) or die $ftp-&amp;gt;message; &lt;br&gt;       $ftp-&amp;gt;get($log_fl, $_); &lt;br&gt;       $ftp-&amp;gt;quit;&lt;br&gt;       exit( 0 );&lt;br&gt;   &#125;   &lt;br&gt;&#125; &lt;br&gt;&lt;br&gt;Смотреть, например, тут - http://www.opennet.ru/openforum/vsluhforumID9/7389.html&lt;br&gt;</description>
</item>

</channel>
</rss>
