Foros del Web » Programando para Internet » PHP »

ejecutar shell_exec() despues de llamada curl

Estas en el tema de ejecutar shell_exec() despues de llamada curl en el foro de PHP en Foros del Web. Hola gente, como puedo ejecutar esto después de que el script recibo una llamada por cURL: shell_exec('php -f miscript.php'); si ejecuto miscript.php desde CLI funciona, ...
  #1 (permalink)  
Antiguo 13/03/2013, 16:14
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
ejecutar shell_exec() despues de llamada curl

Hola gente, como puedo ejecutar esto después de que el script recibo una llamada por cURL:

shell_exec('php -f miscript.php');

si ejecuto miscript.php desde CLI funciona, pero al hacerlo desde curl desde otro server no.

gracias.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #2 (permalink)  
Antiguo 13/03/2013, 17:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ejecutar shell_exec() despues de llamada curl

¿Te da algún error? Recuerda que el path actual para exec() es el mismo desde el script que se esta ejecutando, por lo que igual tienes que usar rutas absolutas al binario de php, y al script.

Saludos.
  #3 (permalink)  
Antiguo 13/03/2013, 18:20
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: ejecutar shell_exec() despues de llamada curl

lo deje asi y no paso nada:

Código PHP:
#!/usr/bin/php -q
<?php

include("bd.class.php");

$bd = new ZonaGammer;
$bd->connect();

$bd->vaciar_bd_postulaciones();

$id_sorteo $_POST['id_sorteo'];

if(!
$_POST):

    echo 
"Este servicio solo recibe datos por POST";
    
  else:
    
    foreach(
$_POST as $key => $value):
        if(!
is_numeric($value)):
            
$bd->ReadWebService($value$id_sorteo);
        endif;
    endforeach;
    
    
shell_exec('/usr/bin/php -f /home/legalint/public_html/zonacanje/webservice/daemon_stombola.php');
    
endif;
?>

update: estaba pensandoq ue no correo quizas por que el script /home/legalint/public_html/zonacanje/webservice/daemon_stombola.php pertenece al usuario www y quizas no tenga permisos para correr desde curl... seria algo así???
gracias
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl

Última edición por cadrogui; 13/03/2013 a las 19:20
  #4 (permalink)  
Antiguo 13/03/2013, 21:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ejecutar shell_exec() despues de llamada curl

Pues más que pertenecer a www, tienes que ver la razón, shell_exec() te devuelve la salida del comando ¿que te marca?
  #5 (permalink)  
Antiguo 14/03/2013, 07:40
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: ejecutar shell_exec() despues de llamada curl

el error es este, por la clase que uso para crear un daemon.

Uncaught System_Daemon_Exception: You can only create daemon from the command line (CLI-mode)

saludos
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #6 (permalink)  
Antiguo 14/03/2013, 10:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ejecutar shell_exec() despues de llamada curl

Pues ahí tienes la respuesta de porque no funciona.

Saludos.
  #7 (permalink)  
Antiguo 14/03/2013, 10:19
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: ejecutar shell_exec() despues de llamada curl

lo se, estoy tratando de ver como corregirlo.

saludos
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #8 (permalink)  
Antiguo 14/03/2013, 10:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ejecutar shell_exec() despues de llamada curl

Pues por lo que he visto por encima de la clase, esta diseñada solo para ejecutarse en el modo CLI / CGI de PHP, por que la extensión que usa (pcntl) solo esta disponible para eso, al ejecutarla usando http, te marca el error porque no lo soporta.

Saludos.
  #9 (permalink)  
Antiguo 14/03/2013, 11:06
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: ejecutar shell_exec() despues de llamada curl

si lo hiciera con fork.. funcionaria?
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #10 (permalink)  
Antiguo 14/03/2013, 11:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ejecutar shell_exec() despues de llamada curl

Probablemente, aunque si ya estas usando esa clase, dice que puedes autoregistrar los scripts en init.d, por lo que podrías hacer eso, y solamente desde tu llamada, hacer el start o stop...

Etiquetas: curl, llamada
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 10:05.