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


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

2.pid文件的做用
防止啓動多個進程副本code

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

代碼示例以下:繼承

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)鎖的狀態不會被子進程繼承,進程關閉則鎖失效,無論子進程是否在運行進程

相關文章
相關標籤/搜索