如何按实际可执行文件名列出进程?

时间:2016-11-06 19:29:00

标签: macos process-monitoring

进程可以使用setproctitle方法在运行时更新其“命令”字段。这将改变过程在几个命令中的显示方式:

$ ps 33933
  PID   TT  STAT      TIME COMMAND
33933 s000  S      0:00.52 spring server | todo-mvc | started 45 hours ago

但是,spring不是可执行文件,这实际上是一个ruby脚本,所以我要查找的输出是/Users/rpatterson/.rvm/rubies/ruby-2.3.1/bin/ruby

This blog post解释了如何使用看似无记录的方法proc_pidpath获取真实路径。活动监视器还正确显示ruby,这对我来说足够接近,可以找到并杀死相关进程。

如何在不编译我自己的程序的情况下从命令行获取此信息?

1 个答案:

答案 0 :(得分:0)

实际完成我的目标的一个不完整的答案是:

fuser $(which ruby) | xargs ps

这允许我识别从特定ruby开始的进程,但可以包含误报(例如,还会列出附加的调试器)。