Pregunta

Estoy creando un proceso que utiliza proc_open en un script PHP.

¿Cómo termino esto en otro guión. No soy capaz de pasar el recurso devuelto por el proc_open.

También intentado usar proc_get_status (), que devuelve el ppid. No entiendo el pid de los niños.

env desarrollo: WAMP

Cualquier entrada es apreciado.

¿Fue útil?

Solución

Le recomiendo que vuelva a examinar su modelo para asegurarse de que realmente tienes que matar el proceso de otro lugar. Su código obtendrá cada vez más difícil de depurar y mantener en todo menos en las circunstancias más triviales.

Para mantenerlo encapsulado, se puede indicar el proceso que desea terminar y con gracia salir en el proceso que desea matar. De lo contrario, puede utilizar IPC normal a enviar un mensaje que dice: ". Oye, amigo cerrar, por favor"

Editar: para el segundo párrafo, es posible que aún así terminar el lanzamiento de una secuencia de comandos para hacer esto. esta bien. lo que se quiere evitar es un kill -9 tipo de cosas. en cambio, que el proceso de salida con gracia.

Otros consejos

Para hacer eso en PHP puro, aquí está la solución:

posix_kill($pid, 15); // SIGTERM = 15

Se puede utilizar algún método para crear proceso, por lo general este método devuelve el PID del nuevo proceso.

¿Tiene esto funciona para usted? :

$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);
$return_value = proc_close($process);

factible es usar algo como esto para poner en marcha su otro proceso:

$pid = shell_exec("nohup $Command > /dev/null 2>&1 & echo $!");

Esto no habría ejecutar el proceso, y le dará un ID de proceso en ejecución.

exec("ps $pid", $pState);     
$running = (count($pState) >= 2);    

para terminar siempre se puede utilizar

exec("kill $pid");

Sin embargo, no puedes matar procesos no son propiedad de las carreras de PHP al usuario - si se ejecuta como nadie - usted comenzará el nuevo proceso como nadie, y sólo ser capaz de matar a los procesos que se ejecutan con el usuario nobody

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top