使用lockf()保证应用单进程
领导安排了一个重要且紧急工作。其中一个要点,就是保证进程只有一个。而使用者可以运行多个实例。所以唯一办法就是在程序中互斥。怎么互斥?
互斥锁。
网络端口。
文件锁。
考虑到进程会崩溃,需要再启动,所以互斥锁方案不能用。网络端口绑定可以使用,文件锁也可以。考虑到私密性,吾决定使用文件锁。
代码如下:
#define LOCK_FILE "./process.lock"bool isRunningNow()
{int fd = open(LOCK_FILE, O_RDONLY | O_CREAT, 0644);if (fd < 0){return false;}//测试互斥锁定区域return (lockf(fd, F_TLOCK, 0) == 0);
}
使用lockf()保证应用单进程相关推荐
- mfc cef cefsettings 单进程 退出_PyTorch 64.进程池Pool的imap方法
在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量的时间.如果操作的对象数目不大时,还可以直接使用Process类动态的生成多个进程,十几个还好,但 ...
- java如何保证redis设置过期时间的原子性_2020年4月Redis面试题和答案整理
点关注,不迷路:持续更新Java相关技术及资讯!!! 关注.转发.评论头条号每天分享java 知识,私信回复"源码" 赠送Spring源码分析.Dubbo.Redis.Netty. ...
- python非阻塞多线程socket_Python实现web服务器之 单进程单线程非阻塞实现并发及其原理...
在Python实现web服务器入门学习多进程.多线程实现并发HTTP服务器中,我们知道可以分别通过多进程.多线程的方式实现并发服务器,那么,是否可以通过单进程单线程的程序实现类似功能呢? 实际上,在P ...
- 单进程架构数据库谨防隐形杀手
摘要:可能大多数DBA都觉得数据库就是数据库,不同的数据库可能在企业级特性上,性能上,稳定性上有些差别,其他的也就 原文链接:https://www.modb.pro/db/22495?cyn 可能大 ...
- php单进程锁定,强制PHP命令行脚本单进程运行的方法
/** * 保证单进程 * * @param string $processName 进程名 * @param string $pidFile 进程文件路径 * @return boolean 是否继 ...
- (4.6.17.4)进程保活(三:JNI层初探):单进程单向循环式启动服务
前言 我们先来看看Android4.4的源码,ActivityManagerService(源码/frameworks/base/services/core/Java/com/Android/serv ...
- 达梦DM8单进程多线程架构模式下各线程详解
达梦数据库进程管理方式类似于Mysql,属于单进程多线程模式.数据库服务进程包含:DmServer(主服务进程)和DmAPService(备份服务进程).线程主要包括:监听线程.IO线程.工作线程.调 ...
- php是单进程运行的么,强制PHP命令行脚本单进程运行的方法
/** * 保证单进程 * * @param string $processName 进程名 * @param string $pidFile 进程文件路径 * @return boolean 是否继 ...
- 计算机网络套接字编程实验-TCP单进程循环服务器程序与单进程客户端程序(简单回声)
1.实验系列 ·Linux NAP-Linux网络应用编程系列 2.实验目的 ·理解并掌握在程序运行时从命令行读取数据的C语言编程方法: ·理解并掌握基于命令参数设置并获取IP与Port的C语言编程方 ...
- List再整理,从代码底层全面解析List(看完后保证收获满满)
前言 本文为对List集合的再一次整理,从父集接口Collection到顶级接口Iterable再到线程不安全实现类:ArrayList.LinkedList,再到线程安全实现类:Vector(被弃用 ...
最新文章
- Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
- PHP中常见的提示对照表
- MySQL 内连接查询
- LINUX之网络编程j简述
- numpy库中的mat和array使用小结
- Milvus加入LF AI孵化,立志成为最流行的AI数据平台
- vi删除选中内容_如何优雅的删除代码-VIM
- JavaSE基础——GUI编程(Swing)
- linux 系统tty、pty和pts 的概念及区别
- WIN7下odbc数据源配置问题
- MATLAB入门教程
- FeHelper下载:(Chrome浏览器)
- uvlayout和MAYA的接口的问题
- Postman测试文件图片上传接口
- 【观察】智能+新时代,智慧酒店未来该何去何从?
- 在matlab上利用fft进行信号频谱分析_使用示波器进行信号频谱分析(FFT)的设置教学...
- 精品微信小程序校园第二课堂在线学习网+后台系统|前后分离VUE
- 一款学习游戏化的APP
- 运行时发现 xxx cannot be cast to xxx
- 阿里云被挖矿使用,导致cpu长期处于100%,ddgs进程,xWx3T进程,关于redis密码