[Linux-programlama] Re: PID dosyası olusturma ve dosya kilitleme

---------

[Linux-programlama] Re: PID dosyası olusturma ve dosya kilitleme

From: Ömer F. USTA <omerusta_at_gmail.com>
Date: Mon, 23 Jun 2008 08:32:30 +0300
Message-ID: <956cd5870806222232k58bd503dy4c50bd5ae633c53e@mail.gmail.com>

http://uw714doc.sco.com/en/SDK_sysprog/_Setting_a_File_Lock.html

2008/6/12 Mehmet Gürevin <mehmetgurevin_at_gmail.com>:
> Merhabalar, umutsuzca 3 saat kivrandiktan sonra sizlere sormaya karar verdim.
>
> Acemi bir c programcisiyim. Bir sunucu uygulamasi yaziyorum ve
> sunucunun ikinci kez calismadigindan emin olmak icin bir pid dosyasi
> yazip dosyayi kilitlemek istiyorum.
>
> dosya kilitlendikten sonra bence root kullanicisi dahil kilit cozulene
> kadar pid dosyasini silememeli - duzenleyememeli ve deamon surec
> oldugunda kilit cekirdek tarafindan kaldirilmali.
> tabi bunlar benim saf temennilerim, linux'ta isler nasil yuruyor bilmiyorum.
>
> pid dosyasi olusturdugum kod asagida. kodu derliyorum. calistiriyorum,
> pid dosyam olusuyor. baska bir terminalden digeri calisirken tekrar
> calistiriyorum yine calisiyor.
> ve surec henuz sonlanmadan pid dosyasini (kilitli olmasi gereken) silebiliyorum.
>
> pid dosyasi icin deneme yaptigim kod su sekilde;
>
> int main(void){
> int pid_fh;
>
> pid_fh = open("pid", O_WRONLY | O_CREAT, 0640);
> if(pid_fh){
> if(lockf(pid_fh, F_TEST, 0) < 0){
> printf("%s\n", "Sunucunun bir kopyasý zaten çalýþmakta.");
> exit(EXIT_FAILURE);
> }else{
> if(lockf(pid_fh, F_TLOCK, 0) < 0){
> printf("%s\n", "PID dosyasý kilitlenemedi.");
> close(pid_fh);
> exit(EXIT_FAILURE);
> }
>
> sprintf(pid_value, "%d", getpid());
> write(pid_fh, pid_value, strlen(pid_value));
> }
> }else{
> printf("%s\n", "PID dosyasý yazýlamadý.");
> exit(EXIT_FAILURE);
> }
>
> sleep(10);
> exit(0);
> }
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>

-- 
Ömer Fadýl USTA
http://www.bilisimlab.com/
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Mon 23 Jun 2008 - 07:59:41 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.