linux怎么查询java路径

跳到结论。

方法一: 要检查 PID,请使用 ps-ef|grepjava。
查看 /proc/PID/exe 的路径。
查看运行目录中的/proc/PID/cwd。

方法二: 要检查系统路径,请使用 whojava。
对多个版本使用 update-options--configjava。

如果权限不够,请使用sudo。
如果有多个版本,请选择一个。
它必须在容器中干燥。

只需使用直接命令。

linux查看进程的运行路径

记得有一次在Linux服务器上遇到问题,需要可视化特定进程的执行路径。
我曾经在终端中输入密码 1 2 3 4 ,但终端显示的是我的主目录路径,而不是我想查看的进程路径。
我有点愣住,等等,这不是我想要的。
突然想到之前在技术论坛上看到过pwd命令不能直接可视化进程路径。
我赶紧查了资料,发现Linux系统并没有pwdPID这样的命令。

然后我发现了一个pwdx命令,它是专门用来显示进程当前工作目录的。
我尝试输入 pwdx 1 2 3 4 ,这次终端正确显示了 1 2 3 4 进程运行的路径。
太神奇了,这个命令这么有用。
不过我突然想到,如果有些系统上没有安装pwdx命令,或者我想用更原始的方法,也可以通过/proc文件系统来查看。

我输入了 ls -l /proc/1 2 3 4 /cwd ,终端显示了一个指向进程实际执行路径的符号链接。
这个方法也很有用,虽然步骤稍微复杂一些。

这次经历让我对命令的使用和局限性有了深刻的认识。
这也让我意识到,有时直接使用命令可能并不是最好的选择。
了解其背后的原理及其替代方案同样重要。
不过,我还是有点好奇,为什么Linux不直接提供pwdPID这样的命令呢?

linux查看进程是哪个程序

嘿,你问我如何检查一个程序是否对应​​Linux中的一个进程,对吗?让我跟你谈谈。

上周,一位朋友向我询问他的计算机上运行的一个奇怪的后台进程,并想知道是什么造成了问题。
我教他使用这两种方法,非常方便。

第一种方法是使用 ps 命令
这个东西真的很快,你可以轻松列出它。
如果您想查看所有进程的名称,只需键入: 巴什 ps -e -o comm=
-e 显示所有进程,-o comm= 只告诉您每个进程的命令名称,不带参数。
给定一组名字,寻找可疑的一个。

如果我想查看某个特定的进程,例如PID为1 2 3 4 的进程,我该怎么办?直接: 巴什 ps -p 1 2 3 4 -o comm=
只需将 1 2 3 4 替换为您的 PID 即可。
该命令对于快速定位特别有用。

如果您想知道进程如何使用路径和参数完全启动,请使用: 巴什 ps -p 1 2 3 4 -o cmd=
这个 -o cmd= 会给你完整的命令行,你可以看到它从哪里开始以及参数是什么。

二、选择/proc文件系统
这种方法可以给你更多的细节,比如启动路径、环境变量等,步骤也多一些。

你必须先知道PID。
如果你不知道,可以使用 ps 或 pgrep 来查找。
巴什 PS-E | grep
或加速你的程序的名称: 巴什 pgrep 你的程序名
pgrep直接给你PID,这样就省了麻烦。

拿到PID之后就是重点了。
检查程序路径,大多数直接的方法是查看/proc/PID/cmdline。
巴什 cat /proc/1 2 3 4 /cmdline
这个文件中,启动参数都是空字符分隔的字符串,可读性不太好。
我通常喜欢使用 tr 将分隔符替换为换行符: 巴什 猫 /proc/1 2 3 4 /cmdline | tr '\0' '\n'
这样逐行阅读比较舒服。

如果您想查看程序实际指向的路径,而不是链接路径,请使用以下命令: 巴什 ls -l /proc/1 2 3 4 /exe
这是一个符号链接,直接显示了它最终指向的位置。

环境变量也见该目录下的环境文件: 巴什 猫/ proc / 1 2 3 4 /环境| tr '\0' '\n'
同样,使用 tr 来替换换行符。

一个实际的例子
假设你想检查nginx进程的路径?你可以这样做: 巴什 PID=$(pgrep nginx | HEAD-1 ) 查找第一个PID,取第一个 cat /proc/$PID/cmdline 查看启动命令 ls -l /proc/$PID/exe 检查实际的程序路径 将这些行放在一起,您可以立即弄清楚。

有一些值得注意的缺点
1 .权限问题:如果你想查看其他用户的进程,你可能必须使用sudo。
如果没有权限,会提示“权限被拒绝”。
2 、进程终止:/proc/PID/ 该目录表明该进程还活着。
如果进程终止,该目录将立即消失。
你必须快点工作,否则你什么也找不到。
3 . 在容器中运行:在像 Docker 或 K8 s 这样的容器中,/proc 文件系统可能有点歪,你可能必须使用 nsenter 或其他工具才能使其正确。
需要。

无论如何,这取决于你。
这两种方法都很常用,在调试或查看系统状态时特别方便。