From: mp3yukle.com webmaster (webmaster@mp3yukle.com)
Date: Thu 24 Jul 2003 - 14:08:10 EEST
merhaba,
ben linux'de bir kac daemon'umu acip kapamak icin bir düzenek yapmistim..
phpnin calistirdigi expect scriptleri ile istedigim kullanici background
'unda daemon calistirip kapatabildim..
direkt herseyi php'ye baglamak yerine sadece atesleme ve status
mekanizmasini php'ye baglayip,
expect scriptleriyle sistemdeki komutlari calistirmak daha uygun gibi
gorunuyor..
saygilar,
----- Original Message -----
From: "Umut PHP" <php@kakalak.org>
To: <linux-programlama@linux.org.tr>
Sent: Thursday, July 24, 2003 1:57 PM
Subject: [linux-programlama] php & daemon
> Merhaba
>
> Belki bir daemon yazmak icin dogru bir dil secimi degil ama
> basitliginden ve ona hakim oldugumdan dolayi php ile bir
> daemon yazmaktayim.
>
> ancak bir kac kucuk problemim var:
>
>
>
> 1. ayni anda request geldigi zaman anladigim
> kadariyla biri bittikten sonra digeri islem goruyor.
> eger ilkinin bitmesi uzun surerse o zaman
> ikinci client socket error veriyor. bunu cozmek
> icin fork kullanmam gerek, bu da pcntl uzantilari
> ile olacak. cozumunu yazdim ama ilk problemim bu.
> google ile bir kac ornek buldum, uzerlerinde calisiyorum.
> umarim dogru yoldayimdir.
>
>
>
> 2. daemon'u kendi icinden restart etmek istiyorum.
> bunun icin bir yerde
>
> if ($opcode=="restartme") {
> system("/usr/local/bin/wadixd &");
> writelog("Shutting down...");
> terminateclient();
> shutdownserver();
> writelog("Wadixd shutdown complete.");
> exit;
> }
>
> cagiriyorum. once ayni socket'e bind etmeye calistigi
> icin problemdi. ben de wadixd'nin basina bir sleep
> koyarak sockete baglanma isini geciktirdim.
> bunda problem yok. ancak exit gormesine ragmen
> ilk calisan daemon hala aktif process olarak gorunuyor.
> bir ihtimal termina.... ve shu.... fonksiyonlari icinde
> bir hata olabilir ama onlar sadece socket close yapiyorlar.
> tum hatalar log dosyasina da yaziliyor ama nedense
> log dosyasinda complete yaziyor ancak process hala
> aktif gorunuyor ps -aux ile bakinca.
>
>
>
> 3. yine ayni sekilde mysql'i baslatmak istedigimde
> system("safe_mysqld &");
> yeni mysql basliyor basarili olarak. ancak
> benim daemonum cagrilara cevap vermeyi birakiyor.
> ustelik netstat ile baktigimda artik benim socketimin
> "sh"'a gectigini goruyorum. pid'den bakinca da o anda
> safe_mysqld tarafindan kullanilan pid cikiyor karsima.
> daemon zaten cagrilara cevap vermiyor ve log dosyasina
> hata yazmiyor herhangi bir sekilde. apache, named ve
> bazi baska minik programciklara denedim ancak
> sadece mysqld ile bu sorunu yasiyorum.
>
>
>
> 4. aslinda 2 ile 3 arasinda bir benzerlik var, simdi
> kesfettim. belki php'nin system() fonksiyonu icinde
> & kullaninca bilmedigim birseyler oluyordur.
> simdi onlari arastirmaya gidiyorum. eger & isaretinden
> kaynaklaniyorsa mysql'i nasil baslatabilirim alternatif olarak?
>
>
>
> saygilar.
> Umut.
>
>