00:00
下面咱们就来讲第一个指令,叫做GPS,查看正在运行的Java进程,好,那我们来看一下首先的这个基本情况,GPS的话呢,它是三个单词的缩写,哎,那分别对应的叫Java process status,叫Java进程的状态啊,那跟这个呢,正好是不是匹配上啊,就是我们正在运行的Java进程。啊,这个指令的话呢,实际上跟我们这个Linux当中的这个是吧,诶这个指令的作用是一样子的啊,查看系统中的这个进程啊,只是我们这里边呢,主要是这个Java进程好看一下,它可以显示指定系统内所有的houseport虚拟机的进程,来用于查询正在运行中的虚拟机的这个进程啊就是非常的直接对吧,那咱这呢,就直接来进行一个操作了,就啊呃V2呃,CMD啊进来呃这块呢,大家注意一下啊呃,下边这样的一些指令的演示啊,我就在这个Windows下来给大家演示了那。当然我们说真正这个,呃,在奇迹开发当中,我们的项目呢,都是部署在这个linus下边啊,在linus里边呢,其实执行这些指令呢,是类似的啊,这块呢,我就用这个Windows来演示了,咱们后续呢,讲案例的时候呢,咱就切换到这个LIS环境下了啊这个大家呢,呃,稍微关注一下啊,因为差别不大,哎,我就方便期间直接在Windows下来演示啊,这个说明一下。
01:19
然后呢,这里边我们就直接写了叫GPS是吧,哎,直接一回车,好这时候呢,大家会看到我们这呢,是不是就有这样的几个进程了,对吧?哎,这样的几个进程,嗯,那为了方便呢,给大家说明了一个问题,咱们再打开这个idea idea呢,我这写了一个程序,非常的简单啊,就是用了一个scanner,从键盘那去获取一个输入的数据,那因为在等待用户输入嘛,所以它就是一个阻塞状态状态啊这个线程是吧,或者这个线程为代表的这个进程呢,它就不能够终止,方便呢,我们去看这个情况啊,当然大家呢,你也可以写一个th.sleep啊,让他这个休息指定的毫秒数啊,在这个休息这个到结束之间呢,你你别让他结这个,这个结束了,然后去运行这个GPS就行是吧,啊一个道理啊,然后这个GPS呢,我们这时候再一回车。
02:07
哎,大家会看到是不是多了一个啊,好,我们看一看这几个分别对应的是什么。第一个呢,这个后边什么也没写,咱们先过掉它哈,第二个这个636328,就是我们这个scan test这个进程是不是对应的这样的一个ID,对吧,下边这个呢,叫GPS。那也就是说呢,这个GPS本身呢,是不是它也对应的是一个进程对吧?这是它这个进程的ID,下边这个呢叫launcher,就是本身我们这个虚拟启动有一个这个launcher啊,它呢也是一个进程,它对应的是2732啊这个呢就是这几个,那第一个呢,10272是什么呢?这个咱们可以来看一下这个任务管理器。这个任务管理器里边,咱们去找一下啊,这叫幺。10292。幺零。2922就他是吧,啊,我们发现这儿呢,对应的实际上就是我们这个idea啊,它呢也是一个进程啊,都是跟我们Java相关的,对吧?诶没有问题,那通过这个呢,我们也能说明一个问题是什么呢?就是咱们现在查看的这个本地虚拟这个虚拟机的这个进程哈,它呢跟咱们操作系统的这个进程ID是不是一致的呀?哎,你会看到咱们左边跟右边,那这个呢,是不是都能够匹配的上,对吧?哎,这是没有问题的啊,主要呢,你还可以去找其他的这几个啊,我这呢就不去找了,呃,另外一个呢,大家你再看啊,我再去写一个GPS1回车。
03:29
大家这时候呢,你再对比一下这个10292,这个还是有scanner的话呢,还是这个6328,然后launcher呢,还是2732,其中这个GPS呢,是不是变了。你看这个数值变了,那我们要再执行一次的话呢,是不是GPS又变了。啊,那就说明我们这个进程的话呢,你给执行结束了啊,这块我们又重新的再起了一个这样的一个进程是吧?哎,这个大家稍微关注一下这个事儿啊好,这呢是我们说的这个基本的一个情况啊,因为咱们后边呢,做监控的话呢,你得知道你要监控的是哪一个进程,所以咱们得先来讲这样的一个指令啊。
04:05
那这个指令的基本情况是这样子的,那另外呢,我们说一下,它其实还可以写的再复杂一点,这里边就涉及到一些参数的情况了,这个GPS后面呢,可以加两块内容,一个呢叫options,一个呢叫host ID。这个options的话呢,就是具体的一些行为了哈,那我们其实在这块呢,也能够查看啊,GPS呢杠help是吧?哎这块呢也能查看,我们可以呢去写啊,对应的像呃这里边的这些参数,这就成为呢叫options了,哎后边呢,还有这个host ID啊host ID呢,这块还有一个说明,怎么一个格式啊,一个一个来介绍,首先呢,我们来说这个叫options里边可以写的呢,你看有这个Q啊MLV啊,这个V呢是大小写的一个情况啊,那这里呢,就对应着我们这里四个参数。哎,对应这四个参数是吧,那这四个参数分别是什么意思呢?咱不用看解释,直接演示就可以了啊,首先来看第一个啊GPS,咱们直接先这样回车一下,这是咱们刚才说的这个基本情况啊,然后呢,我来一个杠Q。
05:07
好,大家看这个时候呢,我们是不是只能够看到跟Java相关的这个进程的一个ID了。就这四个ID,那像这个scanner test6328,哎,这就在这儿嘛,那其他几个也同样的去匹配就行,所以说这个时候我们只能够看到这个ID了,就啊,就不能够看到它到底是哪一个这个进程啊,跟哪个进程相关的了,这个叫做Q。啊,你可以呃想象成是那个cutt,就是那个取消的那个意思是吧,啊就相当于我们这个信息呢,显示的就更简洁了啊,通过这样的一个方式,你去呃,记一记这样的一个指令啊参数,然后再接着JPS,我们来一个杠L啊L呢,诶当然你可以写成是一个long是吧,长的。那你会发现呢,比我们刚才呃什么也不写的这个呢还要长。藏到哪了呢?你看首先说这个scanner吧,这个scanner的话呢,包含了它的一个完整的包名。
06:01
啊,完整的一个权利名的一个路径啊,就列出来了,而这个GPS,包括这个launcher呢,它是哪个相关的这个炸包下的这个呢,是不是完整的路径也给我们展示出来了。对吧,哎,相当于它显示的这个信息呢,就更加的完整啊,就是这个杠L的一个意思,哎,你可以把它理解成是一个long,就是更长了是吧,哎这个意思啊好,那再接着呢,接然后我们来一个杠,咱先讲这个M吧,哎,杠M,然后一回车。哟,大家会发现怎么信息这么多是吧,这个在我们这个命令行这块呢,可能就不太方便看了,咱们这样吧,我先切换到这个D盘下GPS-M,我把它写到一个a.T文件里啊。好,嗯,我放在这个地板下了,咱们找一下。哎,地板打开我们这个A。这是我们刚才生成这个文件啊,在这块呢,看的话呢,会稍微的更清晰一些是吧?嗯,这里边儿呢,你看唯独有这个不同的呢,呃,GPS这块有有一个杠M,然后这个launcher这块呢,你看有这个丰富的这个信息是吧。
07:09
哎,这个我们稍微的给它做一个换行啊。哎,就这么着。这还挺多的啊。啊,还有。哎,没有了啊行,那这些是什么呢?哎,我们会看到这是不是相关的一些这个大包信息,那这呢,其实就相当于是给我们传递的相关的一些这个,哎,这个启动的时候传递的相关的一些这个参数的一个信息啊那这个参数的信息怎么去理解呢?那我们可以拿咱自己的这个程序呢来举个例子,比如说这个scanner,我们是不是也可以通过咱们的程序给这个行参去传这个数据啊啊,那这呢,我先把这个先停一下啊,咱们在这个idea当中点这个run有一个ID的configurations,啊这呢,是不是有一个这个传参数的位置,对吧,比如我们写个叫硅谷。
08:04
好,这时候我们点一个应用,OK,再把它抛起来。点成第八个了啊,也没问题,因为我们也没打断点啊啊行,那这时候跑起来以后呢,我们再回到这个命令行这块,咱们再去做一个这个执行,我把它换成这个叫B吧。好,执行完以后找到这个D盘可打开,好这时候的话呢,大家你看我们这个,诶scanner这个test是不是这块就看到这个艾特硅谷了,就相当于是我们这个相关的进程在运行的时候呢,我们传递的相关的这个参数啊,这呢就是把相关的这个炸包呢都传递过来,相关炸包里边这个信息我们就都可以去使用了,对于这个launcher来讲是这样子的哈,此干这来讲的话呢,我们就传了个艾特硅谷,GPS来讲呢,我们传了一个参数叫杠M嘛。哎,就这样的一个道理啊,行,这个呢,其实很好理解,然后再接着我们看下一个。这个呢叫杠,这个M大家你就可以想象成是me嘛,啊me是吧,哎没方法的,这个M这个V的话呢,看看它是列出虚虚拟机进程在启动时头时候的一个GVM的一个参数啊,GVM的一个参数啊这呢咱们就直接呢来给大家去说明,比如说我们把它呢停掉,再去加一个信息。
09:15
啊,在这个位置是不是给我们这个scanner test可以加这个虚拟拟的参数了啊,比如说简单一点啊,咱们前面也讲过了啊,叉M叉MS,然后比如来个100兆啊XMX来个100兆啊对空间的一个初始和最大的哎,对空间的大小啊,设置完以后呢,我们做一个应用啊OK了,现在呢把它呢跑起来。行,然后回过来啊,这时候呢,我们JPS杠,哎,这个是杠V了,对吧,这个你要这样看的话,是不是看的有很多哈,咱们可以JS-V,再给它写入c.TXT文件里面对吧。好把它呢打开,那这时候呢,咱们看一下这个scanner test啊,大家注意啊,此时呢,我们传递的虚拟的参数是不是就也展示出来了,哎,就是在这个位置,我们刚才写的啊,这个大家稍微注意一下,就这个V的话呢,就是哎,能够显示出来我们传递的这个参数是什么啊这样的一个情况啊,那这还有个说明说以上参数呢,可以综合使用啊,综合使用是什么意思啊,比如说啊,大家注意啊,你看我这GPS,我杠一个L,我在一个。
10:22
杠M啊,就相当于是我既想显示L的信息,又想显示这个M所代表的信息啊,这是我看一回车。A回车,哎,就可以达到这样一个效果,你看我们这个GPS呢,是不是前边起的比较长,这个呢是L是不是体现的作用啊,哎,然后后边这两个是不是这个杠M体现的这个作用啊,那下边这个类似你看这个long呢,前边这么长,哎是因为呢加了杠L了,所以呢,这呢就叫做综合使用啊,那类似的呢,比如说JPS-L呢,哎杠V是吧?啊也可以,那也可以怎么写呢?大家注意哈,杠LV。就是我不是杠L-V了,我杠LV啊也是OK的。
11:01
啊,GPS杠,L va再加个M,相当于他们三个呢同时都使用上啊,一回车也是没有问题的,只不过这个信息量呢有点大啊,可读性呢,看着稍微差一点而已啊。呃,有一个需要注意的问题呢,就是你看啊,我们这个L呢,是不是显示的信息啊比较完整,是类的报名都有,那这个Q的话呢,是正好都没有,它俩呢有点像,是不是互不相容的呀,那我要是把它俩都写上,呃,那到底显示还是不显示呢?哎,回撤一下。啊,你看这时候呢,成了一个不显示了是吧?哎,那我换一块呢,哎,杠Q,然后再写个杠L呢。啊,也没显示,他就以这个杠Q为主了,但是你要这样写呢。LQ呢?啊,它好像就提示我们这个参数呢,是一个非法的了是吧?啊那杨IG呢,就大家你就别试了啊,因为你这样显示的效果诶不就类似于跟杠Q是一样的嘛啊就没有必要再去加杠L了哈,那同样的呢,GPS你这个Q跟M呢,你看看。是不是也是非法的?
12:01
啊,也是非法的啊,也就是这个杠Q的话呢,它是比较独立的啊,你看我们刚才的GPS呢,杠help的时候。在这时候呢,你看它呢,就是个独立显示的,而这里边的这三个啊,这只是一个大写而已啊,这几个的话呢,是可以混合在一起用的。啊,就这个意思啊,行了解一下,然后呢,呃这块提到一个补充说,如果Java进程这个关闭了,默认开启的叫呃,Use per data哎这样的一个参数的话呢,我们就没法查看当前的进程了,什么意思啊,这个意思啊,我们把这个参数呢,CTRLC,诶你看。哎,我把当前这个程序呢,给大家停掉,我在这个参数里边。哎,是不是加上这样的参数了是吧?哎,这个减号呢,其实代表的就是关闭的意思啊,咱们到这个第四章当中给大家去讲解啊,那关闭了以后呢,我们做一个应用。应用呢,我们现在把它呢抛起来。注意跑起来了,跑起来这个时候呢,大家看GPS。
13:03
啊,这个我们加个杠L也行哈,但是你会注意到我们现在呢,列出来了三个进程里边是不是就不包含scanner test了。没有了是吧?哎,这个主要原因呢,就是因为我们把刚才这个参数呢,给它做了一个关闭言IG呢,它默认呢,就是一个开启的啊,你看我们现在把它改成是个加号,它不就是个开启状态吗?啊再执行。哎,然后回过来,我们这时候呢,再做一个这个演示,你看就会有我们这个scan是吧?哎,这个注意这个问题啊,这呢是一个小细节,了解一下就可以了。好,那刚才呢,提到这个基本语法里边是不是还有一个叫host ID是吧,那叫主机的一个ID,那我们刚才在这块呢,是不是也有演示啊,Host ID的话呢,你看有一个主机名,还有一个端口号啊,一看呢,是不是就支持相当于是远程连接啊,哎,没有问题啊,就是如果呢,我们想远程查看其他的这个主机上的这个进程的话呢,我们就可以呃使用这样的一个参数了啊,但是这里边明确注意的点有两个哈,第一个你要是远程使用的话呢,首先还要搭配另外一个参数接啊接state it啊,就我们最后这个要提一下这个参数。
14:09
啊就他啊呃,收集这个远程主机的信息,一个是他另外一个的话呢,就是访问远程的话呢,很容易受到攻击,那如果说你不能确定这个安全性的话呢,建议还是在本地去调用我们的GPS。啊,所以这块呢,大家做一个了解就OK了,行,那主要呢,大家需要关注的就是它最核心的作用就是查看正在运行的Java进程啊特殊的这个参数信息呢,哎,你也可以演示一下体会体会就OK了,这呢就是我们的GPS的使用。
我来说两句