Foros del Web » Programando para Internet » PHP »

Cómo detener un script ejecutándose en background

Estas en el tema de Cómo detener un script ejecutándose en background en el foro de PHP en Foros del Web. Hola. Digamos que estoy ejecutando un demonio php y quiero poder detenerlo cuando sea necesario. Lo ejecuto con Código: php demonio.php & Y el código ...
  #1 (permalink)  
Antiguo 13/08/2011, 18:01
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Cómo detener un script ejecutándose en background

Hola.

Digamos que estoy ejecutando un demonio php y quiero poder detenerlo cuando sea necesario.

Lo ejecuto con

Código:
 php demonio.php &
Y el código es

Código:
while(true)
{
     //implementación del demonio
}
Se me ocurre establecer una variable para poder salir del bucle, pero no sé si esto sea posible en php.
Entonces, ¿cómo se puede hacer?

Muchas gracias.
__________________
Add, never Remove
  #2 (permalink)  
Antiguo 13/08/2011, 19:37
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Cómo detener un script ejecutándose en background

Código PHP:

while(true)
{
if(
true) { 
break; } else {  
   
//implementación del demonio
                       
}

y dentro del if colocas la variable que quieras para que se detenga
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #3 (permalink)  
Antiguo 14/08/2011, 10:10
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Respuesta: Cómo detener un script ejecutándose en background

Gracias johhan16 por tu respuesta.
Me interesa poder detenerlo desde fuera del script. En el ejemplo que mencionas necesitaría una variable de estado la cual tendría que modificar desde el mismo script. Lo que necesito es hacer otro script, por ejemplo stop_daemon.php que de alguna forma pueda detener al demonio.
__________________
Add, never Remove
  #4 (permalink)  
Antiguo 15/08/2011, 08:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Cómo detener un script ejecutándose en background

Lo que debes de hacer es de alguna forma informar al script que se debe de tener, ya sea con un archivo o una base de datos, y en cada vuelta del ciclo comparas esa variable, si se cumple la condicion que esperas, lo detienes.

Saludos.
  #5 (permalink)  
Antiguo 15/08/2011, 09:30
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Respuesta: Cómo detener un script ejecutándose en background

Gracias GatorV.
Voy a hacerlo de esa forma. Simplemente voy a crear un archivo .txt al inicio del script y en cada vuelta checo si existe. Si no existe lo detengo.
Gracias.
__________________
Add, never Remove
  #6 (permalink)  
Antiguo 16/08/2011, 02:20
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Respuesta: Cómo detener un script ejecutándose en background

Por si alguien está interesado, aquí va como lo solucioné:

1. En el demonio al inicio creo el archivo
Código PHP:
Ver original
  1. $flagFile = fopen("running.txt", "a");
  2. fclose($flagFile);

2. En cada iteración verifico que el archivo exista
Código PHP:
Ver original
  1. while(file_exists("running.txt")
  2. {
  3.      //Implementación del demonio
  4. }

3. En el archivo stop_daemon.php
Código PHP:
Ver original
  1. unlink("running.txt");

stop_daemon.php y daemon.php deben estar en el mismo directorio.
Espero que alguien le sirva.
Gracias por su ayuda.
__________________
Add, never Remove

Etiquetas: detener, variables, fondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:16.