我已经通过OSX命令行上的open命令启动了一个应用程序,如下所示:
open -a "/Applications/Adobe After Effects CC/Adobe After Effects CC.app"我想要获取启动的应用程序的进程id。有没有办法在OSX上可靠地做到这一点?open似乎没有返回任何东西,所以我甚至不确定是否可以将其结果通过管道传递到ps之类的内容中,以执行grep操作。我想,也许因为应用程序是通过终端启动的,所以我应该知道哪个应用程序是frontmost,但我怀疑这个解决方案的可靠性。有什么想法吗?
发布于 2014-08-20 01:43:31
执行open -a后,即可执行ps命令。对ps命令的输出执行grep会得到有关进程ID的信息。
ps aux | grep -v grep |grep -i <application name> | awk '{print $2;}'下面给出的是该过程的运行时间。
ps aux -o etime,command | grep -v grep |grep -i <application name> | awk '{print $2, $12,$13}'我们可以比较经过的时间,以了解最近启动的pid。
发布于 2020-06-24 04:36:26
如今,pgrep -n $APPLICATION_NAME似乎是实现这一目标的最简单方法。从手册页:
-n Select only the newest (most recently started) of the matching processes.
-o Select only the oldest (least recently started) of the matching processes.发布于 2022-02-20 02:08:12
活动监视器
您可以使用Activity Moniter。位于/System/Applications/Utilities/Activity\ Monitor.app中
打开应用程序,点击顶部的搜索栏,搜索您想要获取PID的应用程序。

https://stackoverflow.com/questions/25389495
复制相似问题