C 守护进程 - 释放和删除锁定文件
C daemon - Release and delete a lockfile
当使用 this webpage 中的代码 "stolen" 在 C 中对我的程序进行守护进程时,守护进程在初始化时会创建一个锁定文件来存储进程 pid:
:
lfp=open(LOCK_FILE,O_RDWR|O_CREAT,0640);
if (lfp<0) exit(1); /* can not open */
if (lockf(lfp,F_TLOCK,0)<0) exit(0); /* can not lock */
sprintf(str,"%d\n",getpid());
write(lfp,str,strlen(str)); /* store pid in file */
:
该网页似乎没有在守护程序终止后进行清理。事实上,在网上搜索我找不到处理这个问题的方法。
所有守护进程 C 代码的示例都将创建一个锁定文件,但 none 随后将其删除。
假设我可以捕获 SIGTERM 并正常退出,我应该如何解锁然后删除 pidfile?
当使用 this webpage 中的代码 "stolen" 在 C 中对我的程序进行守护进程时,守护进程在初始化时会创建一个锁定文件来存储进程 pid:
:
lfp=open(LOCK_FILE,O_RDWR|O_CREAT,0640);
if (lfp<0) exit(1); /* can not open */
if (lockf(lfp,F_TLOCK,0)<0) exit(0); /* can not lock */
sprintf(str,"%d\n",getpid());
write(lfp,str,strlen(str)); /* store pid in file */
:
该网页似乎没有在守护程序终止后进行清理。事实上,在网上搜索我找不到处理这个问题的方法。
所有守护进程 C 代码的示例都将创建一个锁定文件,但 none 随后将其删除。
假设我可以捕获 SIGTERM 并正常退出,我应该如何解锁然后删除 pidfile?