bool initSigleInstanceLock(const std::string &processName)
{
//
bool ret=false;
static const char *lockFileName="/tmp/daemon_service.lck";
int fd=-1;
do{
fd=open(lockFileName,O_RDWR|O_CREAT|__O_CLOEXEC,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
if(fd<=0)
{
AIMY_ERROR("open %s failed[%s]",lockFileName,strerror(errno));
break;
}
AIMY_INFO("open %s success",lockFileName);
int flags=LOCK_EX;;
int iret=0;
iret = flock(fd,flags);
if(iret!=0)
{
AIMY_ERROR("%s is locking[%d->%s]",lockFileName,iret,strerror(errno));
break;
}
linux判断进程单例的一种方式
最新推荐文章于 2023-06-07 11:37:15 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)