PHP ejecutando programas de la shell

Daniel Molina Wegener dmw en coder.cl
Mie Jun 27 17:17:15 CLT 2012


On 27/06/12 17:15, Marco González Luengo wrote:
> El problema es que no puedo meter crons para un proceso que es bajo
> demanda, como despertar computadores o correr un beep.
>
> De todos modos tengo las MAC de los computadores a despertar en una base de
> datos, y la query de qué computadores iniciar se ejecuta con PHP, la cual
> le envía éstas como parámetros al script bash encargado de eso.

   En ese caso deberias desligar a PHP de la responsabilidad de ejecutar
el proceso, pasarlo a un script mas avanzado en Python + Python Fabric
y usar una cola de trabajos como correspone. En este caso Gearman te
sirve para generar una cola de trabajos lo suficientemente estable.

   Recuerda hacer fork() y notificar a Gearman que el trabajo termino...

>
> Saludos
>
> El 27 de junio de 2012 16:57, jmvidal.cl en gmail.com
> <jmvidal.cl en gmail.com>escribió:
>
>> Lo mejor para eso es tener tu interfaz web para programar eventos, los
>> grabas a una db y desde cron ejecutas una shell que lea la db y ejecute las
>> acciones que deseas, asi no amarras tu interfaz con los orocesos internos.
>>
>> Saludos
>>
>>
>> -----Mensaje original-----
>> De: Marco González Luengo
>> Enviados:  27/06/2012 16:53:04
>> Asunto:  PHP ejecutando programas de la shell
>>
>> Estimados,
>>
>> Estoy tratando de implementar una forma de despertar computadores mediante
>> Wake on Lan con una página PHP y un script bash que tengo para estos
>> propósitos. El problema es que al ejecutar el script bash manualmente, no
>> hay problema y todo ocurre como esperado, no así cuando invoco el script
>> bash desde la página en PHP.
>>
>> Actualmente, para probar si acaso el problema es PHP, traté de correr un
>> beep de 1 minuto en PHP [1], pero éste no ocurre y devuelve un exitcode de
>> 1.
>>
>> Averigué si PHP estaba corriendo con safe_mode, pero éste está desactivado.
>> También he desactivado SELinux e iptables por si acaso. Nada funciona. Me
>> encuentro corriendo CentOS 5.8.
>>
>> ¿Alguien tiene una idea de qué podría estar previniendo que no pueda correr
>> el beep?
>>
>> Gracias de antemano.
>>
>> [1]: http://pastebin.com/TcTZ5Tx8
>>
>>

Atte.
-- 
Daniel Molina Wegener <dmw [at] coder [dot] cl>
System Programmer & Web Developer
Phone: +56 (2) 979-0278 | Blog: http://coder.cl/


Más información sobre la lista de distribución Linux