pcntl_rfork

(PHP 8 >= 8.1.0)

pcntl_rforkManipula los recursos del proceso

Descripción

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

Manipula los recursos del proceso.

Parámetros

flags

El parámetro flags determina qué recursos del proceso llamante (padre) son compartidos por el nuevo proceso (hijo) o inicializados a sus valores por omisión.

flags es el OU lógico de un subconjunto de los siguientes valores:

  • RFPROC: Si está definido, se crea un nuevo proceso; de lo contrario, los cambios afectan al proceso actual.
  • RFNOWAIT: Si está definido, el proceso hijo será disociado del padre. Al salir, el proceso hijo no dejará un estado a recolectar para el padre.
  • RFFDG: Si está definido, la tabla de descriptores de ficheros del llamante es copiada; de lo contrario, ambos procesos comparten una sola tabla.
  • RFCFDG: Si está definido, el nuevo proceso comienza con una tabla de descriptores de ficheros propia. Es mutuamente excluyente con RFFDG.
  • RFLINUXTHPN: Si está definido, el núcleo devolverá SIGUSR1 en lugar de SIGCHILD al salir del hilo para el hijo. Esto está destinado a hacer la notificación de salida del padre de salida del hilo Linux clone.

signal

El número del signal.

Valores devueltos

En caso de éxito, el PID del proceso hijo es devuelto en el contexto del padre, y un 0 es devuelto en el contexto del proceso hijo. En caso de fallo, un -1 será devuelto en el contexto del padre, ningún proceso hijo será creado, y se lanzará un error PHP.

Ejemplos

Ejemplo #1 Ejemplo de pcntl_rfork()

<?php

$pid
= pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if (
$pid > 0) {
// Esto es el proceso padre.
var_dump($pid);
} else {
// Esto es el proceso hijo.
var_dump($pid);
sleep(2); // mientras el hijo no duerma, vemos su "pid"
}
?>

El resultado del ejemplo sería algo similar a:

int(77093)
int(0)

Notas

Nota:

Esta función solo está disponible en sistemas BSD.

Ver también

add a note

User Contributed Notes

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