linux下/var/run目录下.pid文件的作用(文件锁,防止重复启动)
生活随笔
收集整理的這篇文章主要介紹了
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)鎖的狀態不會被子進程繼承,進程關閉則鎖失效,不管子進程是否在運行
總結
以上是生活随笔為你收集整理的linux下/var/run目录下.pid文件的作用(文件锁,防止重复启动)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python url中提取域名(获取域名
- 下一篇: Java 数组常用操作一(排序、元素位置