PHP script Perl dosyasını çalıştırın, ancak Windows Server çıkış için sabırsızlanıyorum

0 Cevap php

Im bir php komut dosyası içinde bir perl komut dosyası çalıştırmak için çalışıyor. Ben vardı bu tür popen ve proc_open exec, gibi çeşitli yöntemler kullanarak çalışan ama ben eski güzel Google bana cevaplarını vererek değil etrafında almak için sorunları bir çift var.

Ben php dosyası içinde (bir sayıdır komut bir değişken geçirmeden). Pl komut dosyasını çalıştırın ama. Pl bitirene kadar (. Pl 4-5 saat almak olasıdır bekleyen gelen php komut dosyası durdurmak gerekir ) sunucu üzerinde çalıştırmak için. Im perl (perl komut dosyası bir mysql db çıkışını günlükleri) herhangi bir geri dönüş çıkış beklemiyordum bu yüzden sadece sunucu üzerinde çalışıyor olması gerekir ve php script devam edelim.

Apache, php, mysql çalıştıran Windows makinelerde ve çalışan olarak geçmiş olsun için bazı engeller vardır.

Ive linux için çözüm görülen düşünüyorum ama Windows makine üzerinde kalmak gerekiyor.

Aşağıdaki kodu kullanarak bir proc_open yaklaşım çalışırken Im akımı (proc_open on line 35 ben perl geçmek için gerekli bir test id):

$descriptorspec = array(
0 => array("pipe","r"),
1 => array("pipe","w"),
2 => array("file","./error.log","a")
) ;

proc_close(proc_open('perl perlscript.pl 35', $descriptorspec, $pipes));

$i = 0;
while ($i < 1000) {
   echo ++$i;  
}

Şimdi bu kodu perl çalıştırmak yapar ama while döngüsü Ive (sadece test için) ondan sonra o bekliyor gibi olmalıdır (ive öyle olmadığını görmek için bitirmek için perl komut dosyası için bekledi değil) çalıştırır asla yerleştirilmiştir. Pl bitirmek için .

0 Cevap