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文件的作用(文件锁,防止重复启动)相关推荐

  1. linux u盘 uid pid,linux下的pid文件的作用

    在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件.而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件.那么这些pid文件有什么作用呢?它的内容 ...

  2. Nginx重启时丢失nginx.pid文件解决方法nginx: [emerg] open() “/var/run/nginx/nginx.pid“ failed (2: No such fi

    nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory) 不要在 ...

  3. linux kill pid文件,从一次事故谈谈 pid 文件的作用

    title: 从一次事故谈谈 pid 文件的作用 tags: pid categories: Tech comments: true date: 2017-05-26 20:00:00 很多程序在启动 ...

  4. 位于/var/log目录下的20个Linux日志文件

    位于/var/log目录下的20个Linux日志文件[译] from:http://buptguo.com/2014/01/16/linux-var-log-files/ 原文地址:20 Linux ...

  5. 2. linux的日志文件在哪个目录,位于/var/log目录下的20个Linux日志文件

    如果你多数时间都在使用Linux系统,那么你有必要知道系统的日志文件位于哪里,以及每个日志文件是关于哪些内容的.在系统正常的时候学习理解各种日志文件的内容,有助于在遇到紧急情况时通过日志文件定位问题所 ...

  6. c++ linux下读取指定目录的所有文件名字

    总结: linux下的两个关键函数 1.     opendir()     打开一个目录 2.     readdir()     从一个目录中读取一个新的文件 windows下 读取指定目录的所有 ...

  7. 解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题

    解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 参考文章: (1)解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 (2)http ...

  8. Windows 系统下通过命令将本地文件上传至远程 Linux 主机的指定目录下

    这里是借助文件传输客户端 putty 的命令来上传文件. 第一步:下载安装 putty 第二步:通过命令终端进入 putty 的主目录下,即进入 D:\puggy 目录下,该目录下含有多个可执行文件( ...

  9. linux下循环读取目录文件,linux循环递归读取目录指定类型文件及计算阶乘脚本...

    linux循环读取目录指定类型文件脚本 ergodic.sh #!/bin/bash function ergodic { for file in ` ls $1` do if [ -d $1&quo ...

最新文章

  1. 百度开源业内首个口罩人脸检测及分类模型,携手开发者共同抗疫
  2. Esxi服务器虚拟化平台搭建
  3. 实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)
  4. hadoop--MapReduce_WordCount词频统计案例
  5. Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分...
  6. Cocos2dx 之 PhysicsHandler 简单实现
  7. Matlab计算熵权法
  8. [Opencv]圆盘目标跟踪系统——激光打靶
  9. BZOJ P1189[HNOI2007]紧急疏散evacuate
  10. Excel如何对合并单元格数据进行排序
  11. 淘集集官宣破产,创业不易,且行且珍惜
  12. 《Windows 8 权威指南》——2.4 Aero与Metro的触摸对比
  13. 信息安全网络安全到底有哪些资质?被大家追逐。。。
  14. 卡片游戏--循环队列实现
  15. 量子通信,永不陷落的安全堡垒?
  16. Qt:QTextStream
  17. 【新闻推荐系统】(task1)系统搭建基本流程
  18. EmguCV的学习日志(一)
  19. 如何优雅的用Axure绘制高保真原型心得分享
  20. rpc介绍,和PHP常用的rpc框架

热门文章

  1. 代码分析 | 单细胞转录组Normalization详解
  2. python爬取商城数据_Python爬取新版CRMEB小程序商城后台订单数据,保存为excel
  3. 第43课 最大公约数 动动脑 第2题《小学生C++趣味编程》
  4. RTX5 | 配置文件RTX_Config.h(一)
  5. iOS 移动端overflow:auto 滚动不平滑及bug处理
  6. 语言条件语序心得_教师心得:提高34岁幼儿口语表达能力的策略
  7. 标准时间校对_光源色灯箱标准原理
  8. HTML期末学生大作业-乒乓球网页作业html+css+javascript
  9. win10+deepin双系统安装方法(UEFI+GPT)
  10. java $ class_java文件编译后额外生成的$1.class是怎么一回事