gpt4 book ai didi

linux - 当前在 Linux 中运行的应用程序

转载 作者:太空狗 更新时间:2023-10-29 12:06:15 24 4
gpt4 key购买 nike

我正在从事一个类似于我们在 Linux 中称为系统监视器的项目。我正在使用 opensuse 11.4 gnome。我想知道是否有任何命令(ps 除外)列出系统上所有当前正在运行的应用程序。我正在为多核环境开发它。

例如,我正在使用 Firefox 浏览网页并同时使用 Google Chrome,另外我正在编辑文本文件中的文本。在这个场景中,当我打开我的项目时,我想要当前正在运行的所有应用程序的列表[在我的场景中,名称 gEdit、Google Chrome 和 Firefox(但不是这三个应用程序生成的进程)必须显示为列表]

我想要的输出与我们在 Windows 中使用任务管理器时在“应用程序”选项卡中获得的输出相同。

如果有人有解决方案,请告诉我,我们将不胜感激。我正在使用 netbeans 来实现该项目。谢谢!!!

最佳答案

我认为没有一种简单的方法可以完成这项工作。在 Linux 中,一个应用程序可能会在启动时创建多个进程 - 例如让我们使用 postfix:

localhost:~ # ps -ef|grep postfix root      3708     1  0 Apr24 ?        00:00:35 /usr/lib/postfix/master postfix   3748  3708  0 Apr24 ?        00:00:01 qmgr -l -t fifo -u postfix   3749  3708  0 Apr24 ?        00:00:00 pickup -l -t fifo -u -c postfix  13504  3708  0 16:05 ?        00:00:00 cleanup -z -t unix -u -c postfix  15458  3708  0 17:45 ?        00:00:00 cleanup -z -t unix -u -c postfix  19907  3708  0 19:25 ?        00:00:00 cleanup -z -t unix -u -c

进程“master”、“qmgr”、“pickup”和“cleanup”都属于应用程序后缀。通过查看第三列,您可以看到这些进程每个都属于一个父进程“master”,该列告诉您启动该进程的父进程。在我的示例中,所有进程都由 ID 为 3708 的进程启动。另一个示例是 Apache Web 服务器,它在启动时创建多个 httpd 进程 - 这里的进程名称都是相同的,只是数量因配置而异。

回到您想解决的问题:从我的角度来看,您可以尝试两种方法:

  1. 建立一个数据库,其中包含进程名称与应用程序的关联,并使用它通过 ps 创建您的应用程序列表。
  2. 您将您的应用程序限制为仅列出显示图形用户界面的应用程序。使用一些 X11 函数或类似的函数应该可以很容易地构建这个列表...

希望这有助于...

关于linux - 当前在 Linux 中运行的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10838373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com