inux下/var/run目录下的pid文件作用
来源:互联网 发布:弯沉值计算软件 编辑:程序博客网 时间:2024/05/24 03:29
在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件。而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件。那么这些pid文件有什么作用呢?它的内容又是什么呢?
(1) pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID。
用cat命令可以看到。
(2) pid文件的作用:防止进程启动多个副本。只有获得pid文件(固定路径固定文件名)写入权限(F_WRLCK)的进程才能正常启动并把自身的PID写入该文件中。其它同一个程序的多余进程则自动退出。
(3) 编程技巧:
调用fcntl设置pid文件的锁定F_SETLK状态,其中锁定的标志位F_WRLCK。
如果成功锁定,则写入进程当前PID,进程继续往下执行。
如果锁定不成功,说明已经有同样的进程在运行了,当前进程结束退出。
lock.l_type = F_WRLCK;
lock.l_whence = SEEK_SET;
if (fcntl(fd, F_SETLK, &lock) < 0){
//锁定不成功, 退出......
}
sprintf (buf, "%d\n", (int) pid);
pidsize = strlen(buf);
if ((tmp = write (fd, buf, pidsize)) != (int)pidsize){
//写入不成功, 退出......
}
(4) 一些注意事项:
i) 如果进程退出,则该进程加的锁自动失效。
ii) 如果进程关闭了该文件描述符fd, 则加的锁失效。(整个进程运行期间不能关闭此文件描述符)
iii) 锁的状态不会被子进程继承。如果进程关闭则锁失效而不管子进程是否在运行。
(1) pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID。
用cat命令可以看到。
(2) pid文件的作用:防止进程启动多个副本。只有获得pid文件(固定路径固定文件名)写入权限(F_WRLCK)的进程才能正常启动并把自身的PID写入该文件中。其它同一个程序的多余进程则自动退出。
(3) 编程技巧:
调用fcntl设置pid文件的锁定F_SETLK状态,其中锁定的标志位F_WRLCK。
如果成功锁定,则写入进程当前PID,进程继续往下执行。
如果锁定不成功,说明已经有同样的进程在运行了,当前进程结束退出。
lock.l_type = F_WRLCK;
lock.l_whence = SEEK_SET;
if (fcntl(fd, F_SETLK, &lock) < 0){
//锁定不成功, 退出......
}
sprintf (buf, "%d\n", (int) pid);
pidsize = strlen(buf);
if ((tmp = write (fd, buf, pidsize)) != (int)pidsize){
//写入不成功, 退出......
}
(4) 一些注意事项:
i) 如果进程退出,则该进程加的锁自动失效。
ii) 如果进程关闭了该文件描述符fd, 则加的锁失效。(整个进程运行期间不能关闭此文件描述符)
iii) 锁的状态不会被子进程继承。如果进程关闭则锁失效而不管子进程是否在运行。
0 0
- inux下/var/run目录下的pid文件作用
- linux下/var/run目录下的pid文件作用
- Linux下程序单例模式的保证机制:/var/run/*.pid
- Linux下程序单例模式的保证机制:/var/run/*.pid
- Lniux系统中/var/log目录下的日志文件的作用
- Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”
- linux 下安装 MySQL 经常出现各种问题终极解决方法 /var/run/mysqld/mysqld.sock /var/run/mysqld/mysqld.pid
- 图形数据库Neo4j restart --( /var/run/neo4j/neo4j.pid: 没有那个文件或目录
- centos 7 下 yum -y install ntp 出现/var/run/yum.pid 已被锁定,PID 为 4054 的另一个程序正在运行。
- Linux/Unix下pid文件作用浅析
- Linux/Unix下pid文件作用浅析
- Linux/Unix下pid文件作用浅析
- Linux/Unix下pid文件作用浅析
- Linux/Unix下pid文件作用浅析
- Linux/Unix下pid文件作用浅析
- Linux/Unix下pid文件作用浅析
- Linux/Unix下pid文件作用浅析
- Linux/Unix下pid文件作用浅析
- eclipse js 报错解决办法
- onSaveInstanceState和onRestoreInstanceState()
- 程序猿 12 个人艰不拆的真相
- Cococs2d-X 将Lua文件加入项目中并编译运行
- C++builder 6.0转RAD studio(C++builder 2009及以上)常见问题处理
- inux下/var/run目录下的pid文件作用
- 中国剩余定理 算法摘记
- oracle字符/字符串替换
- 阻塞队列
- eclipse中svn插件的安装与使用
- android app修改属性改变gsensor
- Hdu 5063 Operation the Sequence
- 游戏开发之A*算法学习及java实现
- sizeof(数组名)和sizeof(指针) .