00:00
啊,那了解了命令之后,我们对于进程的查看基本上就掌握了,我们这里可以把这个清屏清掉,那我们自然就想到了,除了查看进程之外,我们可能还需要对进程做一些其他的操作,比如说有时候我们可能执行到一半,诶,发现一个进程,哎,这个跑的太慢,太卡了。耗费我们资源,系统资源太多,我们想把它直接干掉,诶,那这个时候怎么办呢?这就需要有一个终止进程的命令了,那就是传说中的Q杀死啊,非常有名的一个命令啊,啊就是如果说我们要是不懂这个Q去终止进程的话,那相当于我们做进程管理,就没有起到真正的意义嘛,你没有办法管理,只能看啊,那Q的使用也非常简单了,直接Q后面加上当前的进程号,也就是PID。他可以通过PID直接。杀死对应的那个一个进程啊,当然这是杀掉一个进程啊,那另外还有一个比较狠的范围技AOE啊,那就是我们所谓的Q2 Q2就不止杀一个进程了,因为它后面跟的是进程的名称,那比方说我们这个SD。
01:10
你如果要是直接Q2SSHD的话,那就是所有的登录进程,所有跟SGSD有关的进程全部干掉通杀,哎,这个就非常的强力啊,当然你使用的时候也要稍微的谨慎一点啊。接下来我们直接看这个具体的例子吧,那其实这个Q还是非常有用的,你像前面我们不是看到。当前的SSHD,我们看到现在登录的啊,呃,首先我后台启动了一个守护进程,然后呢,我远程已root的身份在这个PTS0虚拟终端上登录了一个,然后呢,又以root的身份在另外一个虚拟终端PTS2上又登录了一个root,另外呢,还登录了一个艾特硅谷在PTS3上,因为它做了权限分离,所以这里边的进程有两个,这是我们前面说的啊,当前就是一个后台守护进程,四个对应的远程登录进程,那假如说现在我有一个这样的一个想法,就是说这个。
02:08
我通过这个查看,已经发现了有多少人登录到了我当前的虚拟机,当前的服务器上,那现在我会发现这个艾特硅谷,我可能觉得这个用户不是我授权想让他登录上来的,这可能是个非法用户,我想直接把他踢掉行不行呢?诶,这个完全是可以的,首先我们查看查看到了所有的登录信息,那接下来呢,就把对应的艾特硅谷的这个进程直接Q掉就可以了,这里我们可以做一个尝试啊。直接Q后边加的就是PID,哎,那这里大家可能会有疑问,就是哎,这两个ID啊,到底Q谁呢?其实我们知道你直接把这个3539当前艾特硅谷用户自己登录的这个控制台对应的远程登录的进程直接干掉,他肯定就踢出去了啊,那这个踢出去之后,其实它对应的那个做权限分离的root用户的。
03:03
进程也会被干掉啊啊,那如果你干掉上面这个行不行呢?当然干上了这个也行,因为这个是后面这个的负进程嘛,哎,所以这两个干掉哪个都行,比方说我们Q3535。然后接下来我们看一眼。大家看现在就直接退出来了。啊,当前connection closed by foreign host被别人把你直接给关了,哎,所以这个其实看的非常的明显啊,啊就可以踢掉我们不希望登录的,或者说没有权限登录的用户,哎,就把他踢出去了,现在我们再来查一下。哎,我们看现在这两个进程就都没有了。啊,那当然了,就同样都是以root身份去登录,那我能不能把比方说我现在是PTS0这个终端登录进来的,我能不能把PTS2,就是这个已经没用了啊,这个已经掉线了,我能不能把另外这个用户登录上来的这个界面给它踢掉呢?哎,当然也是可以的,我们可以直接尝试一下Q给上对应的PID3481。
04:02
我们可以看一下。当前也就直接踢出去了,哎,这个看的很明显,因为直接变变黑了嘛,所以使用Q去踢掉不必要的用户啊,去干掉不需要的进程,这个其实还是非常好用的。啊,那当然了,我们不光是可以用这种方式去一个一个把它踢掉啊,那刚才这个我们已经踢掉了,现在重新登录一个。再来看一眼。哎,当前就又是PTS0和PTSR2个用户都在这里啊,我们刚才是单个一个一个踢的用户,哎,那可能有同学就想到了,我如果要是自己踢自己可以吗?哎,当然也是可以的,那就是我直接Q。Q,别人我把自己的这个当前登录的进程直接Q掉了,诶那当然自己就相当于X退出了嘛,诶这个也很好理解啊呃,自己退出了,但是别人这边你还可以正常的去进行使用进行访问啊,这是完全没有问题的,那这里又有另外一个问题就是。
05:01
我们可能会想到,如果说这个时候我把直接后台守护进程SHD直接干掉,那又是什么效果呢?1130如果Q掉又会变成什么样子呢?我们直接来试一下。我们看到当前Q掉之后。其实会发现啊,已经没有后台的守护进程,但是我们当前已经登录的两个进程还是存在的,所以你现在该敲什么命令,该看什么还是没问题,歌照唱舞照跳,哎,没问题,但是如果说现在我想再去登录一个用户的话。不管是root还是艾特硅谷,你会发现当前他们已经没有办法再去连接上,因为我们后台的SSHD已经关闭了,后台服务已经关闭了,我们这里如果再去登录的话,那是需要把这个服务提起来,基于它才能去起,那你现在已经没有这个服务了,当然就不行了,而且我们看到啊,本来这个SHD是后面我们这两个登录它的负进程,那负进程干掉了,居然子进程还能活着吗?诶是可以的,你看他活的效果就是直接把它的负进程转成了一啊,当前的登陆进程就还存在。
06:13
所以大家一定要小心,就是在具体使用的时候,就是一定要注意到底是踢掉的是我们当前远程登录的进程,还是踢掉了后台的守护进程,如果你踢掉了守护进程的话,现在你再去连接就怎么都连不上。而且假如说我们当前现在就只有两个连接上的这个控制台界面啊,你如果把这两个退掉的话,远程就再也无法登录上去了。所以如果我们远程连接服务器的时候,一定要小心后台守护进程,千万要小心操作,那这里如果现在我们想就是还想再去做这个远程连接能登上,那怎么办呢?也简单啊,你把这个后台服务我们现在的这个。控制台还是活着的嘛,所以你直接把这个服务再开启不就完了吗?我们先看一下当前的status。SHD很显然直接就被dead啊,关掉了一个active,那所以现在我们直接做一个start不就完了吗?直接把它提起来。
07:09
看一下诶,现在已经是启动状态了,那如果现在我们再要去登录一个艾特硅谷的话,当然一下子就连上了,所以这个还是非常简单的啊,也非常的顺理成章。好,我们现在再来看一眼当前的SSHHD的进程,那我们会看到这个会有点特别,就是因为我们SSHD是已经有了两个终端之再起的,所以他们之间就没有父子关系了。但是呢,我们在起了SHD守护进程之后,又起的远程连接终端,他们的附进程都应该是当前3811这个守护进程。啊,这就是关于Q的基本用法,哎,那这里大家可能仔细研究这个进程的父子关系,可能会有点好奇啊,那比方说你看最后面我们这个啊,Grape的时候,这个SSHD,这就是我们当前执行的这条命令的进程吧,那它的负进程是PPID是3746,这又是个什么进程呢?诶,如果感兴趣的话,我们也可以直接grape,然后就GRAPE3746不就可以了吗?
08:14
那对应的这个3746到底是哪个进程,以及以它作为负,以它作为负进程的子进程有哪些,我们就一目了然,诶,我们看到当前的这个3746,其实就是我们当前打开的这个SH界面,当前这个控制终端啊,控制台页面,我们说这个shell的实现是一个BA嘛,所以当前它也是一个进程,3746就是它,然后它的副进程呢,3742就是我们当前的SSHD远程登录的进程了。所以当前这个关系我们就理顺了,就是一开始的CMD1号进程启动之后,启动了我们这里的啊,当然一开始我们启动的应该是也是一个SSHD的这个进程啊,因为之前我们是把它踢掉过吧,首先应该启动一个SSHD的后台守护进程,然后由这个后台守护进程呢,就有了一个远程登录,我们当前这个终端PTS0的一个远程登录的。
09:11
进程,然后这个远程登录的进程,接下来又会启动当前的一个代进程,哎,那所以他们之间的这个父子调用关系就是这样。我们现在所在控制台里面敲的所有命令,所调用起来的所有的进程,都是基于bash产生出来的进程。这样的话就非常的清楚。啊,那当然了,如果我们想要看到当前所有的这个BA。可能我们对这个bash比较感兴趣啊,那就直接grape bash一下,我们看到到底有哪些bash进程呢?这个就一目了然,我们看到每一个终端,诶,在这里的这个对应的每一个终端啊,对应的其实都有办事进程。我们可以看到本身CMD启动的是一个呃,后台的这样的一个办事服务,然后接下来呢,呃,我们看就是PTS0PTS123,每一个虚拟终端都对应着一个办事进程,哎,那当然这里指的是虚拟终端,那如果是实际终端呢?
10:11
诶,那我就知道了,实际终端的话,目前我们那边没有启动对应的文本界面的那种大黑屏的控制台那边是桌面环境嘛,所以当然就不是bash了。这个就自然能够理解,那这里我们可以把它也做一个Q试试啊,直接Q。我们尝试,诶,当前我们应该是PTS0这个控制台对应的BA进程,我们想要Q掉,比方说这里PT1。这个进程。哎,我们直接。回车,然后我们看一眼,到底它Q掉没有。我们看到没有被Q掉,这是为什么呢?啊,因为我们能够想到这跟远程连接不一样,远程连接是连接上了之后,这个进程应该就处在一个保持连接啊,在处在一个等待的状态了,而现在bash呢,这就是我们当前运行的这个控制台界面,Shell控制台,那本身它就是正在运行的一个进程,你如果直接干,那肯定他是不认同的啊,所以直接干干不掉,那就得强行干,强行干的命令是什么呢?哎,这个大家肯能也知道,加一个杠九参数表示强迫进程立刻停止。
11:26
哎,其实关于这个杠九啊,这是当前所谓的一个系统的信号值,我们可以Q-L可以看一眼啊。当前九这里边给的就是c k ill,就是signal q杀死的信号,哎,所以所谓的九代表的就是这样的一个信号,那我们直接给的就是必须把当前的进程传递一个消息,把你直接干掉,强制干掉。所以接下来我们直接Q杠九。哎,这里我们不要直接复制这个,需要去复制之前的PID。
12:03
那就是3273。现在我们再来看一眼。当前的PTS1就真的已经被干掉了,诶这个是完全没有问题的,那如果我们还记得的话,PTS1应该是之前我们在桌面环境里面打开的那一个控制台,诶,我们看现在已经彻底没有了,完全没有了啊,所以这个非常典型的就能看到这样的一个应用啊,当然如果说我们还想把对应的这个PTS3也干掉的话。直接来一个Q,哎,那接下来一看这个也就没有了,那这边我们就断开了,我们看这里的红点变成绿点,变成红点表示已经断开连接啊,那对应的也是我能不能自已杀自己呢?当然也可以啊,如果自己感兴趣的话,随便杀。把自己干掉也是完全可以的,3746啊,那杀自己的话,当然我们会想到啊,当前这个BA本身是活动的,你想自杀也得强制执行,对吧,所以这里边也是要加上杠九,哎,那这样的话就相当于X直接退出。
13:03
所以这就是关于Q的用法,那当然了,呃,除了Q之外,另外还有一个Q2啊,就是说假如说啊,我们想把当前所有的某一个名字的服务,某一个名字的进程全部干掉,比如说。我们再多连接一个艾特硅谷,多连接几个东西,那比如说前面我们看到的SHD,如果我们想把这里连接的所有SSHD1条命令全部干掉,能不能呢?诶,当然是可以的,但是这种其实要非常的小心啊。就是直接Q2,然后SD是可以的,那我们看直接所有的都变红了,都退出了。但是我们会想到现在都退出了之后会有一个什么效果呢?它连守护进程都关掉了,所以如果我们重连是完全连不上了。哎,所以这个动作我们一定要小心啊,不能随便动,你如果远程做了这样一个操作的话,Q2D的话,那相当于现在你就只有到机房里边到物理机上去做操作了啊,那所以我们当前就只能是诶到这里啊,打开一个终端,然后我们去system。
14:10
Ctl,我们可以把这个变大一点,System ctl start s HD把这个启动,然后接下来再切回来。去做一个连接,哎,这样才可以连上,如果我们在实际工作当中一定要谨慎。这就是关于Q的所有用法。
我来说两句