boolean pcntl_signal(integer signal, string handler, boolean restart_syscalls)
Функция pcntl_signal (листинг 9.101) регистрирует дескриптор сигнала для заданного сигнала. Константу сигнала можно выбрать из табл. 9.27. Задать дескриптор можно, указав имя функции или используя двухэлементный массив. Элемент может быть именем класса или объекта. Второй элемент должен представлять собой имя метода. Для того чтобы сигнал был проигнорирован, можно выбрать команду SIG_IGN. При указании константы SIG_DFL для дескриптора PHP восстановит стандартный дескриптор.
По умолчанию PHP использует системный вызов restarting. Для того чтобы изменить это поведение, можно использовать значение FALSE аргумента restart_syscalls.
Листинг 9.101. Функция pcntl_signal
<?php
// определение класса дескриптора class signal
{
function handle($signal)
{
if($signal == SIGHUP)
{
print(" Получен сигнал HUP!n");
}
}
}
//Задать PHP режим просмотра сигналов
declare(ticks=1);
// зарегистрировать дескриптор
pcntl_signal(SIGHUP, array('signal', 'handle')); // генерировать сигнал posix_kill(posix_getpid(), SIGHUP);
?>
integer pcntl_waitpid(integer pid, integer status, integer options)
Функция pcntl_waitpid останавливает выполнение породившего процесса до тех пор, пока порожденный процесс не завершит свою работу. Она возвращает идентификатор завершенного процесса. В случае возникновения ошибки она возвращает -1. При использовании параметра WNOHANG он может вернуть значение 0, если никакого порожденного процесса не существует.
При вызове функции с аргументом pid меньше, чем -1, PHP будет ожидать порожденный процесс с идентификатором группы, соответствующим абсолютному значению аргумента pid. При вызове этой функции с аргументом pid, равным -1, PHP будет ожидать остановки любого порожденного процесса. При вызове этой функции с аргументом pid, равным 0, PHP будет ожидать любого порожденного процесса, идентификатор группы которого совпадает.
PHP помещает идентификатор статуса в аргументе status. Это значение используется с одной из следующих функций: pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, что позволит определить причину остановки порожденного процесса. Аргументы options принимают две константы: WNOHANG и WUNTRACED. При задании константы WNOHANG функция pcntl_waitpid возвращает значение немедленно, если нет ни одного завершившегося порожденного процесса. При задании константы WUNTRACED функция pcntl_waitpid возвращает информацию об остановленных порожденных процессах. Эти две константы можно объединить с помощью операции "побитовое ИЛИ".
integer pcntl_wexitstatus(integer status)
Функция pcntl_wexitstatus возвращает выходное значение, возвращенное порожденным процессом, если он завершился нормально.
boolean pcntl_wifexited(integer status)
Эта функция проверяет статус, установленный функцией pcntl_waitpid. Она возвращает значение TRUE, если порожденный процесс завершился нормально.
boolean pcntl_wifsignaled(integer status)
Эта функция проверяет статус, установленный функцией pcntl_waitpid. Она возвращает значение TRUE, если порожденный процесс был завершен по сигналу.
boolean pcntl_wifstopped(integer status)
Эта функция тестирует статус, установленный функцией pcntl_waitpid. Она возвращает значение TRUE, если порожденный процесс был остановлен.
integer pcntl_wstopsig(integer status)
Эта функция проверяет статус, установленный функцией pcntl_waitpid. Она возвращает сигнал, остановивший порожденный процесс, если функция pcntl_wifstopped возвращает значение TRUE.
boolean pcntl_wtermsig(integer status)
Эта функция поверяет статус, установленный функцией pcntl_waitpid. Она возвращает сигнал, остановивший порожденный процесс, если функция pcntl_wifsignaled возвращает значение TRUE.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Операционная система. Часть Тридцатая.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Операционная система. Часть Двадцать Девятая. | PHP. Операции ввода-вывода на сетевом уровне |