[linux-programlama] php & daemon

---------

From: Umut PHP (php@kakalak.org)
Date: Thu 24 Jul 2003 - 13:57:54 EEST

  • Next message: mp3yukle.com webmaster: "[linux-programlama] Re: 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.


  • Next message: mp3yukle.com webmaster: "[linux-programlama] Re: php & daemon"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.