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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Andrey Brindeew                      2:5020/400     27 Oct 2000  11:23:02
 To : All
 Subject : Сомнения...
 -------------------------------------------------------------------------------- 
 
 Hello!
 
 Стандартная ситуация: CGI-скрипт форкается, родитель говорит броузеру
 "Bye-bye!", а предварительно отсоединившийся дитенок продолжает работу,
 потом дохнет. Hо на днях меня админ разочаровал: по его словам в результате
 некоторых ошибок ядро может выбросить дитенка в зомби, а т.к. за ним никто
 не следит, то данный PID так и будет висеть в таблице процессов. Проясните
 пожалуйста ситуацию!
 
 Вот используемый мной код:
 
     if (my $pid = fork) {
         print "Content-Type: text/plain\n\nProcessing...";
     }
     else {
         die "Can't fork: $!" unless defined $pid;
 
         # Detaching child from parent process
         open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
         open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
         setsid                  or die "Can't start a new session: $!";
         open STDERR, '>&STDOUT' or die "Can't dup stdout: $!";
 
         # Some stuff
         exit 0;
     }
 
 Еще у админа проскочила хорошая идея, но вот додумать ее я не могу
 самостоятельно:
 Имеется два демона, постоянно висящих в памяти (основной и бэкапный).
 Запустившийся ЦГИ-скрипт просит у демона "дай мне дитенка из такого-то
 класса, вот тебе параметры для конструктора, и пусть он работает". Демон
 делает процесс и следит за ним, как только он подохнет, он чистит зомби.
 Второй демон нужен на случай прибития первого админом (они равноправны): он
 автоматом поднимает первый и попутно обрабатывает запросы. Все IPC, думаю,
 будет производится через Unix domain sockets. Ваши идеи?
 
 --
 WBR, Andrey Brindeew
 http://www.dportal.ru
 http://www.sat.com.ru
 
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Сомнения...   Andrey Brindeew   27 Oct 2000 11:23:02 
 Re: Сомнения...   Max   28 Oct 2000 21:24:03 
Архивное /ru.cgi.perl/657751b719ad.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional