如何检查 GUI 应用程序是不是在 Ubuntu 上运行?

Posted

技术标签:

【中文标题】如何检查 GUI 应用程序是不是在 Ubuntu 上运行?【英文标题】:How to check if GUI application is running on Ubuntu?如何检查 GUI 应用程序是否在 Ubuntu 上运行? 【发布时间】:2018-06-10 13:23:57 【问题描述】:

我有一个使用 c++ 和 QT 编写的 GUI 应用程序,并且我使用 selenium + qtwebdriver 进行了 UI 测试。我的 bash 脚本启动应用程序,然后启动 python 测试。问题是,如果我这样写:

./myapp
python mypythonscript.py

Python 脚本会失败,因为“myapp”需要 2 秒才能打开界面。 如果 GUI 应用程序完全运行,我该怎么做才能知道?是否有任何 X 服务器命令可以返回已启动窗口的名称?

【问题讨论】:

可以在第一行后添加暂停/睡眠5秒sleep 5,也可以使用psgrep查看正在运行的进程 是的,我知道这种添加睡眠的方法,但是如果应用程序启动 12 秒会发生什么?我正在寻找通用解决方案。 看看这个https://askubuntu.com/a/157787/791238 @Stack 嘿,谢谢你的回答。 pgrep 将显示该进程正在运行,即使 GUI 尚未出现。我需要检测是否显示了 GUI。 您的应用程序“知道”其 GUI 何时可见:覆盖您的主小部件的 resizeEvent()。在那里,您可以使用您在启动器中等待的某种类型的进程间通信(例如,创建/更新特定的临时文件)。 【参考方案1】:

您可以将脚本设置为在必要的几秒钟内休眠。然后您可以使用 nvidia-smi 来检查 GPU 在内存中的内容...

watch -n1 nvidia-smi

【讨论】:

以上是关于如何检查 GUI 应用程序是不是在 Ubuntu 上运行?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查是不是在 C# 中安装了 Windows 服务

如何检查一个包是不是已经安装在 ubuntu 上?

如何在 Docker 映像中打开 Ubuntu GUI

如何在Ubuntu上检查一个软件包是不是安装

如何在Ubuntu上检查一个软件包是不是安装

如何通过 ssh 检查 ubuntu 服务器上是不是存在 php 和 apache