Manipula recursos do processo

# pcntl_rfork

(PHP 8 >= 8.1.0)

pcntl_rfork — Manipula recursos do processo

### Descrição

function 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

- pcntl_fork() - Bifurca o processo em execução no momento
- pcntl_waitpid() - Aguarda ou retorna o status de um filho bifurcado
- pcntl_signal() - Instala um manipulador de sinal
- cli_set_process_title() - Define o título do processo

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open