C++ 检测是否有qws服务器正在运行
为了在嵌入式系统上正确地启动一个小Qt应用程序,我需要一种可靠的方法来确定qtqws服务器是否已经在运行C++ 检测是否有qws服务器正在运行,c++,qt,qt4,qtgui,qtembedded,C++,Qt,Qt4,Qtgui,Qtembedded,为了在嵌入式系统上正确地启动一个小Qt应用程序,我需要一种可靠的方法来确定qtqws服务器是否已经在运行 否则,我需要向应用程序提供-qws选项来运行服务器本身。有办法吗?想到的唯一快速解决方法是: ps aux | grep "\-qws" 并检查是否返回任何内容。除此之外,我认为你应该在你的项目中淘汰qws,因为它是一个相对陈旧的概念,与今天的标准相比已经过时了。想到的唯一快速解决方法是: ps aux | grep "\-qws" 并检查是否返回任何内容。除此之外,我认为你应该在你的项
否则,我需要向应用程序提供
-qws
选项来运行服务器本身。有办法吗?想到的唯一快速解决方法是:
ps aux | grep "\-qws"
并检查是否返回任何内容。除此之外,我认为你应该在你的项目中淘汰qws,因为它是一个相对陈旧的概念,与今天的标准相比已经过时了。想到的唯一快速解决方法是:
ps aux | grep "\-qws"
并检查是否返回任何内容。除此之外,我认为你应该在你的项目中淘汰qws,因为它是一个相对陈旧的概念,与今天的标准相比已经过时了。想到的唯一快速解决方法是:
ps aux | grep "\-qws"
并检查是否返回任何内容。除此之外,我认为你应该在你的项目中淘汰qws,因为它是一个相对陈旧的概念,与今天的标准相比已经过时了。想到的唯一快速解决方法是:
ps aux | grep "\-qws"
并检查是否返回任何内容。除此之外,我认为您应该在项目中淘汰qws,因为这是一个相对陈旧的概念,与当今的标准相比已经过时。以下是我所选择的解决方案: QWS服务器使用套接字与客户端进行通信。我测试这个插座是否存在 我还测试服务器是否实际打开了套接字,以避免陷入QWS服务器崩溃后留下的孤立套接字。这是使用套接字上的
lsof
(列出打开的文件)完成的。如果服务器正在运行,列表将不会为空,lsof
将返回true
。如果服务器未运行,lsof
将返回false
在我的系统上,插座位于/tmp/qtembedded-0/qtembedded-0
下面是bash代码:
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
在此之后,我可以使用$QWSOPT
变量运行Qt应用程序:
app $QWSOPT
以下是我所选择的解决方案: QWS服务器使用套接字与客户端进行通信。我测试这个插座是否存在 我还测试服务器是否实际打开了套接字,以避免陷入QWS服务器崩溃后留下的孤立套接字。这是使用套接字上的
lsof
(列出打开的文件)完成的。如果服务器正在运行,列表将不会为空,lsof
将返回true
。如果服务器未运行,lsof
将返回false
在我的系统上,插座位于/tmp/qtembedded-0/qtembedded-0
下面是bash代码:
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
在此之后,我可以使用$QWSOPT
变量运行Qt应用程序:
app $QWSOPT
以下是我所选择的解决方案: QWS服务器使用套接字与客户端进行通信。我测试这个插座是否存在 我还测试服务器是否实际打开了套接字,以避免陷入QWS服务器崩溃后留下的孤立套接字。这是使用套接字上的
lsof
(列出打开的文件)完成的。如果服务器正在运行,列表将不会为空,lsof
将返回true
。如果服务器未运行,lsof
将返回false
在我的系统上,插座位于/tmp/qtembedded-0/qtembedded-0
下面是bash代码:
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
在此之后,我可以使用$QWSOPT
变量运行Qt应用程序:
app $QWSOPT
以下是我所选择的解决方案: QWS服务器使用套接字与客户端进行通信。我测试这个插座是否存在 我还测试服务器是否实际打开了套接字,以避免陷入QWS服务器崩溃后留下的孤立套接字。这是使用套接字上的
lsof
(列出打开的文件)完成的。如果服务器正在运行,列表将不会为空,lsof
将返回true
。如果服务器未运行,lsof
将返回false
在我的系统上,插座位于/tmp/qtembedded-0/qtembedded-0
下面是bash代码:
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
在此之后,我可以使用$QWSOPT
变量运行Qt应用程序:
app $QWSOPT
读取流程表和传递的选项有什么不对?@FinalContest发布正确答案有什么不对?你甚至可能会被选中:)对不起,我个人不认为这是最好的方法,但不幸的是,我也不认为有更简单的方法。Fwiw,我不明白为什么这个问题被否决了。也许有人认为它太短了。我现在已经补偿了@最后,谢谢。无意冒犯,无意冒犯。很高兴继续。阅读流程表和传递的选项有什么错?@FinalContest发布正确答案有什么错?你甚至可能会被选中:)对不起,我个人不认为这是最好的方法,但不幸的是,我也不认为有更简单的方法。Fwiw,我不明白为什么这个问题被否决了。也许有人认为它太短了。我现在已经补偿了@最后,谢谢。无意冒犯,无意冒犯。很高兴继续。阅读流程表和传递的选项有什么错?@FinalContest发布正确答案有什么错?你甚至可能会被选中:)对不起,我个人不认为这是最好的方法,但不幸的是,我也不认为有更简单的方法。Fwiw,我不明白为什么这个问题被否决了。也许有人认为它太短了。我现在已经补偿了@最后,谢谢。无意冒犯,无意冒犯。很高兴继续。阅读流程表和传递的选项有什么错?@FinalContest发布正确答案有什么错?你甚至可能会被选中:)对不起,我个人不认为这是最好的方法,但不幸的是,我也不认为有更简单的方法。我不明白