pcntl_rfork

(PHP 8 >= 8.1.0)

pcntl_rforkManipula recursos do processo

Descrição

pcntl_rfork(int $flags, int $signal = 0): int

Manipula recursos do processo.

Parâmetros

flags

O parâmetro flags determina quais recursos do processo de chamada (pai) são compartilhados pelo novo processo (filho) ou inicializados com seus valores padrão.

flags é o OR lógico de algum subconjunto de:

  • RFPROC: Se definido, um novo processo é criado; caso contrário, as alterações afetam o processo atual.
  • RFNOWAIT: Se definido, o processo filho será dissociado do processo pai. Ao sair, o processo filho não deixará um status para o processo pai coletar.
  • RFFDG: Se definido, a tabela de descritores de arquivo do invocador é copiada; caso contrário, os dois processos compartilham uma única tabela.
  • RFCFDG: Se definido, o novo processo inicia com uma tabela de descritores de arquivo limpa. É mutuamente exclusiva com RFFDG.
  • RFLINUXTHPN: Se definido, o kernel retornará SIGUSR1 em vez de SIGCHILD ao sair da thread filha. Isso serve para fazer notificação ao processo pai da saída do clone no Linux.

signal

O número do sinal.

Valor Retornado

Em caso de sucesso, o PID do processo filho é retornado na thread de execução do processo pai, e um 0 é retornado na thread de execução do processo filho. Em caso de falha, -1 será retornado no contexto do processo pai, nenhum processo filho será criado e um erro de PHP será gerado.

Exemplos

Exemplo #1 Exemplo de pcntl_rfork()

<?php

$pid
= pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if (
$pid > 0) {
// Este é o processo pai.
var_dump($pid);
} else {
// Este é o processo filho.
var_dump($pid);
sleep(2); // como o filho não espera, então vemos seu "pid"
}
?>

O exemplo acima produzirá algo semelhante a:

int(77093)
int(0)

Notas

Nota:

Esta função só está disponível em sistemas BSD.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top