Foros del Web » Programando para Internet » PHP »

Ejecutando proceso con ystem en segundo plano

Estas en el tema de Ejecutando proceso con ystem en segundo plano en el foro de PHP en Foros del Web. Hola. Tengo un problema con mi querido PHP. Estoy intentanod ejecutar un proceso del sistema con la funcion system . Mi problema es que el ...
  #1 (permalink)  
Antiguo 09/01/2009, 05:44
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Ejecutando proceso con ystem en segundo plano

Hola. Tengo un problema con mi querido PHP.
Estoy intentanod ejecutar un proceso del sistema con la funcion system.
Mi problema es que el interprete PHP se queda esperando que este proceso finalice para continuar con el flujo natural del script.
En este ejemplo:

Código PHP:
<?php
  
echo 'Empieza ...';
  
system ('miScriptShell.sh);
  echo '
Sigue como si nada ...;
?>
Ahora, en mi servidor, se imprime la cadena 'Empieza ...', y HASTA QUE NO TERMINA el script bash miScriptShell.sh' NO SE IMPRIME la segunda cadena 'Sigue como si nada ...'.

Lo que necesito lograr es ejecutar este scrit del sistema operativo y que PHP se desligue, que NO lo espere.

Algun consejo ?

Saludos y gracias.
__________________
| Cabeza De Raton |
  #2 (permalink)  
Antiguo 09/01/2009, 06:14
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Ejecutando proceso con ystem en segundo plano

http://es.php.net/manual/en/function.system.php
Cita:
Note: If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends.
  #3 (permalink)  
Antiguo 09/01/2009, 06:37
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
si, gracias por el copy&paste. Algún consejo de como redireccionar la salida del archivo. ?
Código PHP:
<?php
  
echo 'Empieza ...';
  
system ('./miScriptShell.sh > nada.dat');
  echo 
Sigue como si nada ...;
?>
en el script anterior ... si bien estoy redireccionando la salida del script a un archivo, PHP sigue esperando que el proceso finalice antes de continuar.

Saludos.

Hay que cerrar el comando con &

Código PHP:
<?php
  
echo 'Empieza ...';
  
system ('(./miScriptShell.sh &) > nada.dat');
  echo 
Sigue como si nada ...;
?>
__________________
| Cabeza De Raton |

Última edición por GatorV; 09/01/2009 a las 10:21
  #4 (permalink)  
Antiguo 09/01/2009, 08:35
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: Ejecutando proceso con ystem en segundo plano

Cita:
Iniciado por Calisco Ver Mensaje
Hay que cerrar el comando con &

Código PHP:
<?php
  
echo 'Empieza ...';
  
system ('(./miScriptShell.sh &) > nada.dat');
  echo 
Sigue como si nada ...;
?>
Exacto. Pero si no me equivoco, eso solo funciona en sistemas UNIX, Linux, BSD y demás.
Y si se usa, por ejemplo, IIS bajo Windows?
(Tan solo es una duda)
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!
  #5 (permalink)  
Antiguo 09/01/2009, 10:44
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Respuesta: Ejecutando proceso con ystem en segundo plano

No se, gracias a Dios nunca me topé con ese muerto.
__________________
| Cabeza De Raton |
  #6 (permalink)  
Antiguo 09/01/2009, 10:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ejecutando proceso con ystem en segundo plano

Mmm haz probado solamente dejar el & para que se quede en segundo plano?:
Código php:
Ver original
  1. <?php
  2.   echo 'Empieza ...';
  3.   system ('./miScriptShell.sh &');
  4.   echo Sigue como si nada ...;
  5. ?>

Saludos
  #7 (permalink)  
Antiguo 09/01/2009, 15:14
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Respuesta: Ejecutando proceso con ystem en segundo plano

Deberia de una ... no lo probe
__________________
| Cabeza De Raton |
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 12:02.