c++ - 如何防止 Linux 程序多次运行?

标签 c++ c linux unix executable

防止 Linux 程序/守护程序在给定时间多次执行的最佳方法是什么?

最佳答案

最常见的方法是创建一个 PID 文件:定义文件的存放位置(在/var/run 里面很常见)。成功启动后,您会将 PID 写入此文件。在决定是否启动时,读取文件并检查以确保引用的进程不存在(或者如果存在,它不是您的守护进程的实例:在 Linux 上,您可以查看 /proc/$PID/exe)。关机时,您可以删除该文件,但这不是绝对必要的。

有一些脚本可以帮助您执行此操作,您可能会发现 start-stop-daemon 很有用:它可以使用 PID 文件,甚至只是全局检查可执行文件的存在。它专为这项任务而设计,旨在帮助人们正确完成任务。

关于c++ - 如何防止 Linux 程序多次运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3706917/

相关文章:

检查用户及其组的 Linux 脚本

c++ - 对 `json11::Json::dump(std::string&) const' 的 undefined reference collect2 : error: ld returned 1 exit status

c++ - Vector 无法正确创建对象

c++ - Qt QML 单例智能感知

c - 为什么没有不可变的整数集而不可变的字符集是可能的?

linux - 使用 echo 命令格式化

C++反射是如何实现的

C - 在数组中使用 malloc() 存储指针,之后不能释放它们

c - 什么是整数文字类型?以及它们如何存储?

linux - 如何在 Mac 上从 asp.net vnext 运行 HelloWeb?