首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OSX上获取`open`命令启动的app的进程id (PID)?

如何在OSX上获取`open`命令启动的app的进程id (PID)?
EN

Stack Overflow用户
提问于 2014-08-20 01:29:20
回答 3查看 9.6K关注 0票数 9

我已经通过OSX命令行上的open命令启动了一个应用程序,如下所示:

代码语言:javascript
复制
open -a "/Applications/Adobe After Effects CC/Adobe After Effects CC.app"

我想要获取启动的应用程序的进程id。有没有办法在OSX上可靠地做到这一点?open似乎没有返回任何东西,所以我甚至不确定是否可以将其结果通过管道传递到ps之类的内容中,以执行grep操作。我想,也许因为应用程序是通过终端启动的,所以我应该知道哪个应用程序是frontmost,但我怀疑这个解决方案的可靠性。有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-20 01:43:31

执行open -a后,即可执行ps命令。对ps命令的输出执行grep会得到有关进程ID的信息。

代码语言:javascript
复制
ps aux | grep -v grep |grep -i <application name> | awk '{print $2;}'

下面给出的是该过程的运行时间。

代码语言:javascript
复制
ps aux -o etime,command | grep -v grep |grep -i <application name> | awk '{print $2, $12,$13}'

我们可以比较经过的时间,以了解最近启动的pid。

票数 2
EN

Stack Overflow用户

发布于 2020-06-24 04:36:26

如今,pgrep -n $APPLICATION_NAME似乎是实现这一目标的最简单方法。从手册页:

代码语言:javascript
复制
-n    Select only the newest (most recently started) of the matching processes.
-o    Select only the oldest (least recently started) of the matching processes.
票数 1
EN

Stack Overflow用户

发布于 2022-02-20 02:08:12

活动监视器

您可以使用Activity Moniter。位于/System/Applications/Utilities/Activity\ Monitor.app中

打开应用程序,点击顶部的搜索栏,搜索您想要获取PID的应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25389495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档