在 Linux 下的 Qt,如何检测一个进程已经在运行

Qt under linux, how to detect a process is already running?

本文关键字:进程 运行 一个 下的 Linux Qt 何检测 检测      更新时间:2023-10-16

我正在ubuntu 16.04下开发。我遇到的问题是:我想检测用户是否已经启动了应用程序,如果是,它直接退出。

我尝试使用QLocalServerQSharedMemory来实现这一点。但问题是:

如果程序在没有正确关闭本地服务器或破坏共享内存的情况下崩溃则本地套接字/共享内存保留在操作系统中并阻止用户再次启动程序。

如何处理这个问题?

对于共享内存问题,您可以查看此问题 QSharedMemory 在应用程序崩溃时未被删除

有关拥有单个应用程序实例的更通用答案,您可以查看Qt单个应用程序,它是qt解决方案的一部分。