PID的作用linux,Linux下/var/run目录下的pid档案作用 - WordPress 多站点站群

在 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, “%dn”, (int) pid);

pidsize = strlen(buf);

if ((tmp = write (fd, buf, pidsize)) != (int)pidsize){

//写入不成功, 退出……

}

(4) 一些注意事项:

i) 如果程序退出,则该程序加的锁自动失效。

ii) 如果程序关闭了该档案描述符 fd, 则加的锁失效。(整个程序执行期间不能关闭此档案描述符)

iii) 锁的状态不会被子程序继承。如果程序关闭则锁失效而不管子程序是否在执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值