bulmak için nasıl belirli bir süreç hala PHP çalışıyor

3 Cevap php

Ben diğer komut bir kuyruk oluşturur ve onların başlatmak yönetmek için beklenen bir senaryo yazıyorum. yöneticisi komut dosyası çocuk süreç bittikten hangi bilmeli, bu yüzden kuyrukta bekleyen diğer komut başlatabilirsiniz.

Ben bir "& echo $!" Eklendi her çocuk işlemin işlem kimliği almak için. bu yüzden benim çocuk Süreci kimlikleri işler var, ve şimdi çocuk süreçleri hala çalışıyor ya değilse bulmak için sistem "ps" program arama kullanıyorum.

şey benim komut dosyası şu anda sadece Unix benzeri sistemlerde çalışır olmasıdır. Ben windows benim çocuk PID almak için nasıl bilmiyorum, benim komut dosyası henüz windows "tasklist" komutunun çıkışını ayrıştırmak değildir.

Bunu başarmak için başka bir yolu var mı? çocuk süreç hala çalışıyorsa bulmak için herhangi bir-PHP çözüm? diğer işlemleri (engellemesiz) başlatmak ve hala çalışıyor veya olup olmadığını kontrol etmek bir çözüm.

3 Cevap

Unix ortamları için Process Control ilginç bulabilirsiniz. Ayrıca comment in the manual gibi Windows programlarını yürütme, ve bu beni COM nesneleri düşünmek işaret bir örnek bulabilirsiniz.

What you could do is create a database or file that will hold your process ids. Every process will write his pid (process id) in the file or DB. Use this method to acquire your php pid:

getmypid();

Işlem kimliği hala aşağıdaki ile çalışıyorsa eğer denetleme süreci her şimdi ve sonra kontrol eder:

function is_process_running($PID) {
  exec("ps $PID", $ProcessState);
  return(count($ProcessState) >= 2);
}

Işlemi durduruldu zaman sonraki süreci yürütebilirsiniz

ve pencerelerin kullanımı için kılavuzda Yorumu kontrol: http://no2.php.net/manual/en/book.exec.php#87943

Siz) (proc_get_status denediniz mi? Bu durumda proc_open () kullanarak çocuğunuzun süreçleri yumurtlamaya isteyebilirsiniz. Bu ne arıyor ise emin değil im.