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



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

$ 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

这篇博文解释了如何使用一个看似没有文档的方法proc_pidpath来获得真正的路径。活动监视器还正确显示ruby,这将足够接近我找到并杀死相关进程。

如何在不编译自己的程序的情况下从命令行获得这些信息?

一个不完整的答案实际上实现了我的目标:

fuser $(which ruby) | xargs ps

这允许我识别哪些进程从特定的ruby启动,但可能包括误报(例如,附加的调试器也将被列出)。

相关内容

  • 没有找到相关文章

最新更新