如何在linux中识别一个进程是java还是c或c++进程?
Posted
技术标签:
【中文标题】如何在linux中识别一个进程是java还是c或c++进程?【英文标题】:How to identify if a process is java or c or c++ process in linux? 【发布时间】:2016-06-07 04:52:09 【问题描述】:ps -eaf | grep java
命令在这里不是识别进程是否为 java 进程的解决方案,因为执行此命令后,我的许多 java 进程都没有在输出中列出。
【问题讨论】:
jps
通常有效
那么它们是如何在ps
输出中列出的呢?当然,你可能会遇到一个进程既是 C++ 又是 Java的问题。
会pstree
帮忙吗?
【参考方案1】:
简答(希望有人写一个更全面的):
获取进程PID
转到/proc/<pid>
从那里查找进程二进制文件
在其上运行命令file
和ldd
,看看你能从它们的输出中找出什么(当然,查看命令的手册页)。
使用lsof
命令查看进程打开了哪些文件,并查看这些文件是否包含告示库或类似文件。
【讨论】:
【参考方案2】:这个帖子解释了如何找到一个 jvm 正在运行的进程
https://superuser.com/questions/441792/how-do-i-determine-what-running-process-is-using-java
因此,您可能只需检查所有虚拟机并检查它们是否正在运行您正在寻找的进程 ID。如果不是,那一定是其他语言。
【讨论】:
【参考方案3】:Jab 进程必须由 Java 可执行文件执行。因此,要查看该进程,您必须查看正在运行的命令行。 ps -ef 或者 日语 或者 顶部
是常见的解决方案
【讨论】:
以上是关于如何在linux中识别一个进程是java还是c或c++进程?的主要内容,如果未能解决你的问题,请参考以下文章
用OpenCV开发人脸识别软件,用Java好还是用C/C++好
如何在 Mac 网络内核扩展(套接字过滤器)中识别 C 中的进程?
用OpenCV开发人脸识别软件,用Java好还是用C/C++好