linux下/var/run目錄下.pid文件的作用



1.pid文件的內容
用cat命令查看,可以看到內容只有一行,記錄了該進程的ID

2.pid文件的作用
防止啟動多個進程副本

3.pid文件的原理
進程運行后會給.pid文件加一個文件鎖,只有獲得該鎖的進程才有寫入權限(F_WRLCK),把自身的pid寫入該文件中。
其他試圖獲得該鎖的進程會自動退出。

代碼示例如下:

lock.l_type=F_WRLCK;
lock.l_whence=SEEK_SET;

if(fcntl(fs,F_SETLK,&lock)<0){
//鎖定不成功,退出
}
sprintf(buf,"%d\n",(int)pid);
pidsize=strlen(buf);
if)(tmp=write(fs,buf,pidsize))!=(int)pidsize){
//寫入不成功,退出
}

4.注意事項
1)進程退出,該進程加的鎖自動失效
2)進程關閉了該文件描述符,加的鎖失效
3)鎖的狀態不會被子進程繼承,進程關閉則鎖失效,不管子進程是否在運行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM