在 Linux 下的 Qt,如何检测一个进程已经在运行
Qt under linux, how to detect a process is already running?
我正在ubuntu 16.04下开发。我遇到的问题是:我想检测用户是否已经启动了应用程序,如果是,它直接退出。
我尝试使用QLocalServer
,QSharedMemory
来实现这一点。但问题是:
如果程序在没有正确关闭本地服务器或破坏共享内存的情况下崩溃,则本地套接字/共享内存将保留在操作系统中并阻止用户再次启动程序。
如何处理这个问题?
对于共享内存问题,您可以查看此问题 QSharedMemory 在应用程序崩溃时未被删除
有关拥有单个应用程序实例的更通用答案,您可以查看Qt单个应用程序,它是qt解决方案的一部分。
相关文章:
- IPC使用多个管道和分支进程来运行Python程序
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 运行代码时,c++ 会终止进程
- 从 C++ 运行的进程偶尔会错过某个选项
- 父进程意外被子 cmd 杀死.exe运行 java jar 的进程 - WINDOWS 7 问题 - C++
- 如何在不丢失输出的情况下杀死/停止终端中正在运行的进程?
- Windows 将标准的 C 文件结构注入到正在运行的进程中
- 如何使用 c++ libboost 运行进程并获取其输出?
- 从Visual Studio 2017运行MPI应用程序,每个进程在不同的cmd窗口中
- GDB:运行不带符号的 cpp 进程调试
- 在程序继续C++时保持进程运行
- CLion 如何终止进程运行?
- 两个并发的 Python 进程可以在 Boost Python 中运行吗?
- 获取正在运行的进程的模块数
- C++ 减慢另一个正在运行的进程
- Linux 守护进程 - 运行函数两次
- SYSTEM_INFO::d wActiveProcessorMask是否可以在我的进程运行时更改
- 如何保持进程运行
- 程序(nload)在shell中执行时作为守护进程运行,但不在启动/自动化脚本中执行
- 从Mono上运行的C#进程运行C++应用程序.运行检测器错误