Uso básico

Este exemplo bifurca um processo daemon com um manipulador de sinal.

Exemplo #1 Exemplo de controle de processo

<?php
declare(ticks=1);

$pid = pcntl_fork();
if (
$pid == -1) {
die(
"não pode bifurcar");
} else if (
$pid) {
exit();
// nós somos os pais
} else {
// nós somos o filho
}

// desconecta do terminal de controle
if (posix_setsid() == -1) {
die(
"não foi possível desconectar do terminal");
}

// configura manipuladores de sinal
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// faz um loop para sempre executando tarefas
while (1) {

// faça algo interessante aqui

}

function
sig_handler($signo)
{

switch (
$signo) {
case
SIGTERM:
// lida com tarefas de desligamento
exit;
break;
case
SIGHUP:
// lida com tarefas de reinicialização
break;
default:
// trata todos os outros sinais
}

}

?>
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top