Linux下如何查找自己java进程的pid(ps和jps区别) | 您所在的位置:网站首页 › java程序的命令是 › Linux下如何查找自己java进程的pid(ps和jps区别) |
这里先介绍可以测试的在线Linux系统: 链接: https://blog.csdn.net/u014429653/article/details/99069829. 1、JPS介绍jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。 用来查看基于HotSpot的JVM里面中,所有具有访问权限的Java进程的具体状态, 包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java进程,可以把jps理解为ps的一个子集。 使用jps时,如果没有指定hostid,它只会显示本地环境中所有的Java进程;如果指定了hostid,它就会显示指定hostid上面的java进程,不过这需要远程服务上开启了jstatd服务,可以参看前面的jstatd章节来启动jstad服务。 1.1、常用参数说明-q 忽略输出的类名、Jar名以及传递给main方法的参数,只输出pid。 -m 输出传递给main方法的参数,如果是内嵌的JVM则输出为null。 -l 输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。 -v 输出传给JVM的参数。 -V 输出通过标记的文件传递给JVM的参数(.hotspotrc文件,或者是通过参数-XX:Flags=指定的文件)。 -J 用于传递jvm选项到由javac调用的java加载器中,例如,“-J-Xms48m”将把启动内存设置为48M,使用-J选项可以非常方便的向基于Java的开发的底层虚拟机应用程序传递参数。 1.2、示例unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。 使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打) 。 jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path. 2.1、常用参数说明ps -ef |grep abc 查看含有"abc"的活动进程 ps -ef |grep -v abc 查看不含abc的活动进程 1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。 2)ps -A 显示所有程序。 3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 4)ps -e 此参数的效果和指定"A"参数相同。 5)ps e 列出程序时,显示每个程序所使用的环境变量。 6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。 7)ps -H 显示树状结构,表示程序间的相互关系。 8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。 9)ps s 采用程序信号的格式显示程序状况。 10)ps S 列出程序时,包括已中断的子程序资料。 11)ps -t 指定终端机编号,并列出属于该终端机的程序的状况。 12)ps u 以用户为主的格式来显示程序状况。 13)ps x 显示所有程序,不以终端机来区分。 最常用的方法是 ps ps ps -ef|grep ps ps -ef|grep java ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作 2.2、示例方法一:输入命令:ps -ef|grep 相应的进程名称 输入命令: ps -ef 效果如下: UID:用户ID,实际输出的是用户名,如root PID:当前进程的ID PPID:当前进程的父进程ID C:当前进程占用的CPU的百分比 STIME:当前进程启动到现在的时间 TTY:当前进程在哪个终端上运行,若与进程无关,则显示为?,若为pts/0等,则表示由网络连接主机进程。 CMD:命令的名称和参数 关于PID和PPID,我们来看个栗子,如下: 当我们执行:ps-ef 命令之后,看到如下关系图: 方法二:输入命令:ps aux | grep 相应的进程名称 比如:查找是否存在MySQL进程,输入:ps aux|grep mysql,效果如下: |
CopyRight 2018-2019 实验室设备网 版权所有 |