Новые книги

Под этой обложкой головокружительная история рождения, взросления и успеха всемирно известной компании, сделавшей миллиардером... самого Стива Джобса! Временно, на момент основания компании, безработного.

О компании, которую знают все, даже если не помнят названия. О компании, которая началась с абсолютно безумной фантазии.

Нет, вовсе не об Apple. Герой этой книги — анимационная студия Pixar, сверх-успешная компания, совершившая техническую революцию и навсегда изменившая киноиндустрию. Прайс рассказывает и о том, как создавалась Pixar, и о том, чем заняты ее сотрудники сегодня.

Это настоящий подарок для всех, кто ценит выдающиеся компании. И мультфильмы.
Вы никогда не задумывались о том, что вся наша современная цивилизация, со всеми ее величайшими технологическими прорывами и товарно-услуговыми благами основана на… лени? С помощью обещания что-либо сделать за нас можно продать практически все, что угодно, если бы не одно НО. И это НО – обычный страх, единственный, способный победить лень и побудить нас сделать что-то, чего совсем не хочется и даже если ооооооочень лень! А это значит, что продать все и всем можно с помощью основных человеческих пороков – лени и страха.

Книга в первую очередь рекомендована маркетологам, специалистам по продажам, руководителям компаний и всем тем, у кого есть хоть одна фобия! Здесь вы найдете массу интересных и креативных примеров, взятых из жизни. Где-то от души посмеетесь, быть может, до корней волос похолодеете, но равнодушными, верим, точно не останетесь!

Функции Управления Процессом

Учебник РНР
Назад Вперёд

LXXXI. Функции управления процессом

Поддержка функций управления процессом в РНР реализует создание процесса в стиле Unix, выполнение программы, обработку сигналов и окончание процесса. Управление процессом не должно включаться в окружении web-сервера, и могут быть неожиданные результаты, если функции управления процессом будут выполняться внутри среды web-сервера.

Эта документация призвана разъяснить общие принципы использования каждой из функций управления процессом. Детальную информацию об управлении процессом в Unix мы рекомендуем вам найти в вашей системной документации, включая fork(2), waitpid(2) и signal(2), или в исчерпывающем справочнике, таком как Advanced Programming in the UNIX Environment, автор W. Richard Stevens (Addison-Wesley).

Поддержка управления процессом в PHP по умолчанию не включена. Вам необходимо использовать опцию конфигурации --enable-pcntl при компилировании PHP, чтобы включить эту поддержку.

Примечание: в настоящее время этот модуль не работает на не-Unix платформах (Windows).

Следующий список сигналов поддерживается функциями управления процессом. См. man-страницу signal(7) вашей системной документации о поведении по умолчанию этих сигналов.

Таблица 1. Поддерживаемые сигналы
SIGFPESIGCONT SIGKILL
SIGSTOPSIGUSR1SIGTSTP
SIGHUPSIGUSR2SIGTTIN
SIGINT SIGSEGVSIGTTOU
SIGQUITSIGPIPE SIGURG
SIGILLSIGALRMSIGXCPU
SIGTRAPSIGTERMSIGXFSZ
SIGABRT SIGSTKFLTSIGVTALRM
SIGIOTSIGCHLD SIGPROF
SIGBUSSIGCLDSIGWINCH
SIGPOLLSIGIOSIGPWR
SIGSYS   

Пример управления процессом

Этот пример разветвляет процесс демона/daemon с обработчиком сигнала.

Пример 1. Управление процессом
<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork"); 
} else if ($pid) {
     exit(); // мы родитель
} else {
     // мы потомок
}

// отсоединиться от терминала управления
if (!posix_setsid()) {
    die("could not detach from terminal");
}

// настроить обработчики сигнала
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// проходить по циклу, выполняя задачи
while(1) {

    // здесь делать что-нибудь интересное

}

function sig_handler($signo) {

     switch($signo) {
         case SIGTERM:
             // обработать задачи отключения
             exit;
             break;
         case SIGHUP:
             // обработать задачи рестарта
             break;
         default:
             // обработать все другие сигналы
     }

}

?>
Содержание
pcntl_exec - выполняет специфицированную программу в пространстве текущего процесса
pcntl_fork - разветвляет текущий процесс
pcntl_signal - инсталирует обработчик сигнала
pcntl_waitpid - ожидает или возвращает статус разветвлённого потомка
pcntl_wexitstatus - возвращает return-код завершённого потомка
pcntl_wifexited - возвращает TRUE, если статус-код представляет успешный выход
pcntl_wifsignaled - возвращает TRUE, если статус-код представляет окончание по сигналу
pcntl_wifstopped - возвращает TRUE, если дочерний процесс в данный момент остановлен
pcntl_wstopsig - возвращает сигнал, который заставляет потомка остановиться
pcntl_wtermsig - возвращает сигнал, который заставляет потомка закончить работу

НазадОглавление Вперёд
pg_updateВверх pcntl_exec