Código
<?php /* An easy way to keep in track of external processes. * Ever wanted to execute a process in php, but you still wanted to have somewhat controll of the process ? Well.. This is a way of doing it. * @compability: Linux only. (Windows does not work). * @author: Peec */ class Proceso{ private $pid; private $command; public function __construct($cl=false){ if ($cl != false){ $this->command = $cl; $this->runCom(); } } private function runCom(){ $command = 'nohup '.$this->command.' > /dev/null 2>&1 & echo $!'; $this->pid = (int)$op[0]; } public function setPid($pid){ $this->pid = $pid; } public function getPid(){ return $this->pid; } public function status(){ $command = 'ps -p '.$this->pid; else return true; } public function start(){ if ($this->command != '')$this->runCom(); else return true; } public function stop(){ $command = 'kill '.$this->pid; if ($this->status() == false)return true; else return false; } } ?>
ejemplo de prueba
Código
$programa = "/usr/bin/perl script.pl parametros"; $proceso = new Proceso($programa);
Esperar a que termine por si solo
Código
Puedes pararlo con los metodos de la clase, saludos.
//proceso ejecutando while($proceso->status()){ } //proceso finalizado.