Новые книги

Простым и понятным языком рассказано, как скрыть свое местонахождение и IP-адрес, используя анонимные сети Tor и I2P, посетить заблокированные администратором сайты, защитить личную переписку от посторонних глаз, избавиться от спама, зашифровать программой TrueCrypt данные, хранящиеся на жестком диске и передающиеся по сети. Отдельное внимание уделено защите домашней сети от нежданных гостей, от соседей, использующих чужую беспроводную сеть, выбору антивируса и брандмауэра (на примере Comodo Internet Security). Показано, как защитить свою страничку в социальной сети, удалить файлы без возможности восстановления и многое другое.

Для широкого круга пользователей
В этой книге есть все, что нужно знать, чтобы эффективно продавать рекламные услуги: как проанализировать потребности рекламодателей, разработать тактику конкретной продажи, основы медиапланирования, главное о рекламном тексте и его оформлении, современных подходах к тестированию рекламы и т. д. На любом этапе продаж справочник поможет: разработать предложение, от которого клиент не сможет отказаться, провести успешные переговоры, найти выход в нестандартной ситуации.

Автор – признанный специалист рекламных продаж – делится не только своим собственным богатейшим опытом, но и своих коллег-практиков. Наряду с типовыми шаблонами и схемами в книге рассматриваются конкретные ситуации, возникающие на практике.

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

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

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

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