создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

PHP. Руководство по PHP. 2005

Process Control FunctionsПред.

След.

CI. Process Control Functions

Введение

Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a webserver environment and unexpected results may happen if any Process Control functions are used within a webserver environment.

This documentation is intended to explain the general usage of each of the Process Control functions. For detailed information about Unix process control you are encouraged to consult your systems documentation including fork(2), waitpid(2) and signal(2) or a comprehensive reference such as Advanced Programming in the UNIX Environment by W. Richard Stevens (Addison-Wesley).

PCNTL now uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You use the declare() statement to specify the locations in your program where callbacks are allowed to occur. This allows you to minimize the overhead of handling asynchronous events. In the past, compiling PHP with pcntl enabled would always incur this overhead, whether or not your script actually used pcntl.

There is one adjustment that all pcntl scripts prior to PHP4.3.0 must make for them to work which is to either to use declare() on a section where you wish to allow callbacks or to just enable it across the entire script using the new global syntax of declare().

Замечание:Для Windows-платформ

это расширение недоступно.

Требования

Эти функции всегда доступны.

Установка

Process Control support in PHP is not enabled by default. You have to compile the CGI or CLI version of PHP with --enable-pcntl configuration option when compiling PHP to enable Process Control support.

Замечание: Currently, this module will not function on non-Unix platforms (Windows).

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

The following list of signals are supported by the Process Control functions. Please see your systems signal(7) man page for details of the default behavior of these signals.

WNOHANG (integer)

WUNTRACED (integer)

SIG_IGN (integer)

SIG_DFL (integer)

SIG_ERR (integer)

SIGHUP (integer)

SIGINT (integer)

SIGQUIT (integer)

SIGILL (integer)

SIGTRAP (integer)

SIGABRT (integer)

SIGIOT (integer)

SIGBUS (integer)

SIGFPE (integer)

SIGKILL (integer)

SIGUSR1 (integer)

SIGSEGV (integer)

SIGUSR2 (integer)

SIGPIPE (integer)

SIGALRM (integer)

SIGTERM (integer)

SIGSTKFLT (integer)

SIGCLD (integer)

SIGCHLD (integer)

SIGCONT (integer)

SIGSTOP (integer)

SIGTSTP (integer)

SIGTTIN (integer)

SIGTTOU (integer)

SIGURG (integer)

SIGXCPU (integer)

SIGXFSZ (integer)

SIGVTALRM (integer)

SIGPROF (integer)

SIGWINCH (integer)

SIGPOLL (integer)

SIGIO (integer)

SIGPWR (integer)

SIGSYS (integer)

SIGBABY (integer)

Примеры

This example forks off a daemon process with a signal handler.

Пример 1. Process Control Example

<?

declare(ticks=1);

$pid = pcntl_fork();

if ($pid == -1){

die("could not fork");

} else if ($pid){

exit(); //we are the parent

}else{

//we are the child

}

//detatch from the controlling terminal

if (!posix_setsid()){

die("could not detach from terminal");

}

//loop forever performing tasks

while (1){

//do something interesting here

}

function sig_handler($signo)

{

switch ($signo){

case SIGTERM:

//handle shutdown tasks

exit;

break;

case SIGHUP:

//handle restart tasks

break;

default:

//handle all other signals

}}

//setup signal handlers

pcntl_signal(SIGTERM, "sig_handler");

pcntl_signal(SIGHUP, "sig_handler");

?>

Смотрите также

A look at the section about POSIX functions may be useful.

Содержание

pcntl_alarm -- Set an alarm clock for delivery of a signal

pcntl_exec -- Executes specified program in current process space

pcntl_fork -- Forks the currently running process

pcntl_getpriority -- Get the priority of any process

pcntl_setpriority -- Change the priority of any process

pcntl_signal -- Installs a signal handler

pcntl_wait -- Waits on or returns the status of a forked child

pcntl_waitpid -- Waits on or returns the status of a forked child

pcntl_wexitstatus -- Returns the return code of a terminated child

pcntl_wifexited -- Returns TRUE if status code represents a successful exit

pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal

pcntl_wifstopped -- Returns TRUE if child process is currently stopped

pcntl_wstopsig -- Returns the signal which caused the child to stop

pcntl_wtermsig -- Returns the signal which caused the child to terminate

Пред.

Начало

След.

parsekit_func_arginfo

Уровень выше

pcntl_alarm

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

Ваше письмо×
Free Web Hosting