检查是否有qws服务器在运行
Detect whether there is a qws server running
为了在嵌入式系统上正确启动一个小Qt应用程序,我需要一种可靠的方法来发现Qt QWS服务器是否已经运行。
否则,我需要为应用程序提供-qws
选项来运行服务器本身。有办法吗?
我的解决方案如下:
QWS服务器使用套接字与客户端通信。我测试这个套接字是否存在。
我还测试服务器是否实际上打开了套接字,以避免在QWS服务器崩溃后遗留的孤立套接字。这是使用套接字上的lsof
(列出打开的文件)完成的。如果服务器正在运行,列表将不为空,lsof
将返回true
。如果服务器未运行,lsof
将返回false
。
在我的系统中套接字位于/tmp/qtembedded-0/QtEmbedded-0
QWSSOCK=/tmp/qtembedded-0/QtEmbedded-0
if [ ! -S $QWSSOCK ] ; then
echo "No socket $QWSSOCK"
QWSOPT=-qws
elif lsof $QWSSOCK ; then
echo "Server running on $QWSSOCK"
QWSOPT=
else
echo "No server on $QWSSOCK"
QWSOPT=-qws
fi
在此之后,我可以运行我的Qt应用程序使用$QWSOPT
变量:
app $QWSOPT
想到的唯一快速解决方法是:
ps aux | grep "-qws"
并检查它是否返回任何内容。除此之外,我认为你应该在你的项目中淘汰qws,因为它是一个相对陈旧和破碎的概念,与今天的标准。
相关文章:
- 在 Ubuntu 服务器上运行 QT 应用程序时崩溃
- 使用 c 或 c++ 运行本地服务器的最佳方法
- 用于本地网络运行的客户端服务器体系结构
- 在 MySQL 中运行 HTTP 服务器以从客户端接收数据
- 在 Cap'n Proto RPC 服务器中定期运行函数
- 如何保持服务器运行(cpprestsdk - casablanca)
- 从主机向在VirtualBox linux机器上运行的服务器发送http请求
- 如何为服务器运行valgrind?
- 服务器和客户端都在PC上运行.客户端可以使用PC的IP连接到服务器
- 如果服务器未运行,则async_connect成功
- PostgreSQL在DB服务器中消耗更多内存,以进行长期运行的连接
- 使用Valgrind时,偶尔的BOOST :: ASIO TCP服务器故障在Localhost上运行
- CPP 程序在服务器上运行缓慢
- 在 Ubuntu 上运行的节点服务器需要执行 C# 应用程序 - 如何执行
- OPC-UA open62541 sdk 运行服务器后动态添加变量节点
- 使用WordPress在网络服务器上运行C 应用程序
- 运行 boost::asio 异步服务器以及命令循环
- C++运行程序和 Tcp 服务器
- 我们如何远程调试在 Linux 服务器上运行的C++应用程序
- 在简单的 pthread 中运行服务器