Inicie PHP Daemon desde el script php

digamos que tengo un script daemon php simple:

#!/usr/local/bin/php -q
<?php

set_time_limit(0);

while(1){
  //do something here
  if ($something == "somethingelse"){exit;}
}

?>

Y yo quiero ejecutarlo desde otro script php. ¿Cuál es la mejor manera de hacerlo? He estado usando el rizo para eso así:

$url = "url to php daemon file";
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 1);
curl_setopt($ch,CURLOPT_TIMEOUT, 1);
$not_important = curl_exec($ch);
curl_close($ch);

Pero estoy buscando una mejor idea, si es que hay una :).

preguntado el 02 de mayo de 12 a las 19:05

Para ejecutarlo a través de una solicitud HTTP remota, también necesitaría ignore_user_abort(TRUE). De forma predeterminada, los servidores web eliminarán los scripts en ejecución cuando el usuario remoto se desconecte. Su versión de curl ejecutaría la secuencia de comandos durante 1 segundo, luego curl se agotaría y se desconectaría, lo que provocaría la muerte de su secuencia de comandos. -

Asegúrate de marcar una respuesta como correcta esta vez, ¡tal vez más personas te ayuden en el futuro! -

@MarcB Ignore_user_abort está desactivado. Pero este script curl funciona para mí. -

1 Respuestas

shell_exec('/foo/bar/myscript.php');

contestado el 02 de mayo de 12 a las 19:05

no necesitaria ser shell_exec('php /foo/bar/myscript.php');? No estoy seguro de si funcionaría en todos los sistemas sin anteponer el comando con "php" - doug molineux

@PeteHerbertPenito, La línea shebang está ahí, por lo que normalmente funcionará. - Brad

La línea #!/usr/local/bin/php -q al principio le dice que ejecute esto con php, así que no es necesario - Ángel

@SarahPantry, ¿esto esperará los resultados o simplemente iniciará el archivo php y continuará con el código después? - Martín Sajna

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.