Ben system()
(: NCBI BLAST, phrap, Primer3 ve DNA dizi analizi ve montajını yapmak için diğer programlar ilgi için) başka (potansiyel olarak uzun süren) programları yürütmek için çağrı kullanan bir PHP komut dosyası var.
Ben bir komut isteminden PHP CLI sürümünü kullanarak, Windows XP altında çalışan, ya da bir hizmet olarak yaşıyorum. (Her iki durumda da bir veritabanı tablosundaki bir görev kuyruğuna aracılığı ile iletişim).
Under PHP4: when I hit Ctrl+C the script is stopped and any child process running at the time is also stopped. Under PHP5: when I hit Ctrl+C the script stops, but the child is left running.
Benzer şekilde, PHP4 ile çalışırken hizmetini durdurma, bir hizmet olarak komut çalıştırırken çocuk çalışmaya devam PHP5 ile, çocuk durur.
Ben bir minimum test uygulaması yazmaya çalıştım, ve aynı davranışı bulduk. Test PHP komut dosyası sadece sistemi () bir C programı (sadece 30 saniye boyunca uyur) yürütmek için kullandığı ve daha sonra basılacak bir tuşu bekler.
PHP 4.4.9 ve 5.2.6 için kaynağını bir göz vardı ama sistemin (bu neden olacak gibi görünüyordu) kod hiçbir farkları görebiliyordu. Ben de CLI uygulama için başlangıç kodu hızlı bir göz vardı ve sinyal işlemede herhangi bir farklılık görmedim.
Bu neden olmuş olabilir ne Herhangi bir ipucu, ya da geçici bir çözüm, mutluluk duyacağız.
Teşekkürler.