Linux中如何通过进程号pid找到对应的进程名及所在目录

分类:计算机 | 操作系统 | 综合 179
更新:2021-05-02 22:00:09
编辑

有时候通过top命令可以看到有个别进程占用的内存比较大,但是tom命令无法直接查看到进程名以及进程所在的目录。所以我们可以通过以下方法来定位。

首先需要知道pid号,可以通过top命令获取: 然后我们可以用ps看以下大致信息:

[root@iZbp13806tx36fgoq7bzk1Z 28990]# ps -aux |grep -v grep|grep 28990
200      28990  0.7 14.0 5112056 1128224 ?     Ssl  Sep26 231:10 /opt/java/bin/java -server -Dinstall4j.jvmDir=/opt/java -Dexe4j.moduleName=/opt/sonatype/nexus/bin/nexus -XX:+UnlockDiagnosticVMOptions -Dinstall4j.launcherId=245 -Dinstall4j.swt=false -Di4jv=0 -Di4jv=0 -Di4jv=0 -Di4jv=0 -Di4jv=0 -Xms1200m -Xmx1200m -XX:MaxDirectMemorySize=2g -Djava.util.prefs.userRoot=/nexus-data/javaprefs -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass -XX:+LogVMOutput -XX:LogFile=../sonatype-work/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=../sonatype-work/nexus3 -Djava.io.tmpdir=../sonatype-work/nexus3/tmp -Dkaraf.startLocalConsole=false -Di4j.vpt=true -classpath /opt/sonatype/nexus/.install4j/i4jruntime.jar:/opt/sonatype/nexus/lib/boot/nexus-main.jar:/opt/sonatype/nexus/lib/boot/org.apache.karaf.main-4.0.9.jar:/opt/sonatype/nexus/lib/boot/org.osgi.core-6.0.0.jar:/opt/sonatype/nexus/lib/boot/org.apache.karaf.diagnostic.boot-4.0.9.jar:/opt/sonatype/nexus/lib/boot/org.apache.karaf.jaas.boot-4.0.9.jar com.install4j.runtime.launcher.UnixLauncher run 9d17dc87   org.sonatype.nexus.karaf.NexusMain
[root@iZbp13806tx36fgoq7bzk1Z 28990]#

通过上面的信息我们也可以找出这是一个java进程,在/opt/sonatype/nexus/bin/nexus目录下,当然可以有别的更简单直接的方法。

得知pid之后可以直接进入/proc/28990 这样就可以很直观地看出来。

转载地址

https://www.cnblogs.com/jie-fang/p/7686521.html