Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Ivan Frolkov                         2:5020/175.2   10 Mar 2005  16:01:51
 To : Golyashov Sergey
 Subject : Re: демоны...
 -------------------------------------------------------------------------------- 
 
 Thu Mar 10 2005 14:05, Golyashov Sergey wrote to Konstantin Tokar:
 
  >> Я просветил. Тебе что-то непонятно?
  GS> Hе понятно - почему именно использование Proc::Daemon можно считать
  GS> правилным способом?
 
  GS> Смотрим Daemon.pm и видим:
 
  GS> sub Fork {
  GS>     my($pid);
  GS>     FORK: {
  GS>  if (defined($pid = fork)) {
  GS>      return $pid;
  GS>  } elsif ($! =~ /No more process/) {
  GS>      sleep 5;
  GS>      redo FORK;
  GS>  } else {
  GS>      croak "Can't fork: $!";
  GS>  }
  GS>     }
  GS> }
 
  GS> sub Init {
  GS> ...
  GS>     ## Fork and exit parent
  GS>     if ($pid = Fork) { exit 0; }
 
  GS>     ## Detach ourselves from the terminal
  GS>     croak "Cannot detach from controlling terminal"
  GS>  unless $sess_id = POSIX::setsid();
 
  GS>     ## Prevent possibility of acquiring a controling terminal
  GS>     if (!$oldmode) {
  GS>  $SIG{'HUP'} = 'IGNORE';
  GS>  if ($pid = Fork) { exit 0; }
  GS>     }
  GS> ...
  GS> }
 
  GS> Чего-то координально нового я тут не увидел. Соответственно не пойму
 
 Как написано в доке на Proc::Daemon, он делает следующее:
 
    1. Forks a child and exits the parent process.
    2. Becomes a session leader (which detaches the program from the
 controlling terminal).
    3. Forks another child process and exits first child. This prevents the
 potential of acquiring a controlling terminal.
    4. Changes the current working directory to "/".
    5. Clears the file creation mask.
    6. Closes all open file descriptors.
 
 "Координально" новым тут являются пп. 2 и 3. 4, 5 и 6 ты просто
 проигнорировал.
 
 За подробностями - http://www.faqs.org/faqs/unix-faq/programmer/faq/ , искать
 "1.7 How do I get my program to act like a daemon?"
 
  GS> зачем ставить модуль, не входящий в состав perl по умолчанию, для того,
  GS> чтобы реализовать все тоже самое, что можно легко сделать и без него.
  GS> Или Вас смутило то, что в моем примере демон не отваливался от
  GS> терминала? Дык подобных примеров в сети полно.
 
 "Бомж отравился продуктами, найденными на помойке" (с)МК
 
 --- ifmail v.2.15dev5
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 демоны...   Nick Knutov   08 Mar 2005 02:34:19 
 Re: демоны...   Konstantin Tokar   08 Mar 2005 01:17:51 
 Re: демоны...   Golyashov Sergey   08 Mar 2005 05:14:04 
 Re: демоны...   Ivan Frolkov   08 Mar 2005 15:45:19 
 Re: демоны...   Golyashov Sergey   09 Mar 2005 15:30:09 
 Re: демоны...   Konstantin Tokar   09 Mar 2005 15:43:38 
 Re: демоны...   Golyashov Sergey   10 Mar 2005 15:05:44 
 Re: демоны...   Konstantin Tokar   10 Mar 2005 15:37:19 
 Re: демоны...   Golyashov Sergey   10 Mar 2005 16:27:44 
 Re: демоны...   Artem Chuprina   10 Mar 2005 15:41:24 
 Re: демоны...   Ivan Frolkov   10 Mar 2005 16:01:51 
 Re: демоны...   Denis Bondar   09 Mar 2005 16:12:06 
 Re: демоны...   Sergey Chumakov   15 Mar 2005 16:43:03 
Архивное /ru.perl/33008c0dcbcc.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional