Merhaba,

pcntl_waitpid ile kapanan childların exit statusunu almaniz lazim.
Aksi takdirde işlemini tamamlamış ama exit statusu süreç tablosunda
bulunan süreçleriniz olacaktır. Zombie süreçler bunlardır. Bitmiş
süreç sinyal beklemediği için childlara kill ile sinyal göndermeniz
işe yaramaz. Killall php ile ana süreci öldürürseniz childlarların
parent süreci init olur. Init otomatik olarak bütün childları için
waitpid yaptığı için zombiler temizlenir. Kısacası fork ettiğiniz ana
süreçte pcntl_waitpid yapın, aşağıdaki linkte örnek var:

http://www.tuxradar.com/practicalphp/16/1/3

İyi çalışmalar.


2009/8/21 Hasan Sertçelik <[email protected]>:
> Merhabalar.
>
> Serverda Php ile yazdığım bir programda zaman zaman zombiler oluşuyor.
> Zombilerin  pcntl_fork ile oluşturduğum children sürecinin  soapla karşı
> serverde iletişimde iken zaman zaman timeota düştüğü durumda oluştuğunu
> zannediyorum ama emin değilim.
> Ana süreçte  aklıma gelen bir kaç metodu uyguladigim halde bu zombilere
> çözüm bulamadım.
> oluşan zombilere zaman zaman manuel olarak kill pid -9 ile sonlanmasına
> ragmen bazen sadece killall php ile sonlandirabiliyorum.
>
> Bu Zombileirn oluşmasını nasil engelleyebilirim veya engelleyemezsem ana
> süreçte zombinin olustuğunu nasıl  tesbit edip  ana süreçin bunu
> kapatmasini saglayabilirim?
>
> Teşekkürler.
> Hasan
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>



-- 
H Özgür Batur
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

Cevap