Linux之进程管理—常见进程管理命令

前面的内容中给大家讲过了如何查看进程,今天要给大家讲的是对于进程的管理,说的简单一些就是你可以对进程做的操作,比如控制进程的开启与关闭,那么应该如何实现对进程的控制呢?这就需要你给这个进程一个信号去告之你想要它干什么.
一、常见信号
先说一说常用的几个主要代号:
1)代号“1”:SIGHUP,可以启动被终止的进程,类似于重新启动吧
2)代号“2”:SIGINT,这个就相当于用键盘使用【ctrl+c】终止进程
3)代号“9”:SIGKILL,强制终止一个进程,尤常用于杀掉僵尸进程的父进程
4)代号“15”:SIGTERM,当该进程正常时,可以使用这个代号将之正常结束,如果已经发生问题,这个代号就没用了
5)代号“19”:SIGSTOP,相当于使用键盘的【ctrl+Z】对进程进行暂停
上面所说的是常见的一些信号,如果你想要知道更多的信号可以使用【man 7
signal】查看,我个人认为你只需要记住信号1、9、15这三个常用的信号就够了,那么在这个过程中,到底是怎么将一个信号发送给进程的呢,就是用kill或killall来实现的,接下来我们具体看一下:
1、kill -signal pid:kill可以将信号传送给某个任务(%jobnumber)或是某个pid(直接输入数字),注意加粗部分的说法,因为两者之间是有区别的,这是因为我们的系统里面存在一个1号进程,这个进程是系统进程(systemd),一旦被关闭,整个系统就会宕掉,而恰恰同时任务管理里还有一个1号任务,所以千万不要弄混,不然后果自负哦。
2、killall -signal 命令名称:很明显这个命令的使用是与上面的不同的,上面的命令是在最后面加上PID或者任务号,而这个命令是在后面加上命令即可。有没有想过为什么有了kill这个命令还要有killall,因为上面已经讲过了kill这个命令后面要加上进程号,所以有时候kill后面就要结合ps命令,显得很麻烦,而这个命令就可以直接加上进程的名字,如下所示:
在这里插入图片描述
二、进程的优先级
前面其实已经简单的提到过,进程是存在优先级的,毕竟进程也有“高低贵贱”,如果你想要某个进程更快执行,执行的机会更多,就需要去调节PRI,这个PRI之前也出现过,并且这个PRI的数值越小,执行顺序就会越靠前,举个例子
在这里插入图片描述
从上图可以看到我的系统中两个进程的PRI都是80,所以假如此时有很多的进程,你想要让某一个进程更先执行,就让PRI变小即可。但是PRI的值是由系统的核心动态决定的,用户是无法直接对其修改的,所以就要另辟蹊径,因为PRI(new)=PRI(old)+NI,所以我们可以对NI进行调整,让NI更小,PRI自然就会更小。但是有一点要注意,并不是说此时我的PRI是80,我把NI调整为-5,然后PRI就一定会变成75,这是不一定的,简单的说,NI的值可以影响到PRI,但是最终的PRI值是需要系统的核心动态分析得出的。
关于调整NI的值,有着一些规则,规则如下
在这里插入图片描述
接下来说一说如何对NI的值进程调整,对NI的值的调整有两种方式,分别是:1)一开始执行程序就给予一个特定的nice值,用nice命令 。2)调整某个已经存在的PID的nice,用renice.下面我们看第一种方式的示范即【nice -n 数字 command】
在这里插入图片描述
由上图可以看到,vi进程的PRI已经变成了85,成功。在这里插入图片描述
注意,测试完之后,就要像上面一样将这个进程杀掉。关于第二种方式其实更为简单,看示例【renice 数字 PID】
在这里插入图片描述
记得修改完之后要恢复原样
在这里插入图片描述
三、系统资源的观察
1)一般来说,我们会查看系统cpu、内存等资源,这个时候可以使用的命令也有不少,比如free,比如top,free可以看到系统的内存,使用top可以实时的查看,并且可以设置多少秒刷新一次
在这里插入图片描述
在这里插入图片描述
2)uname查看系统与核心相关信息
在这里插入图片描述
3)uptime查看启动时间与工作负载
在这里插入图片描述
4)vmstat侦测系统资源变化
3和4分别代表3秒一次共执行4次
在这里插入图片描述
今天就先讲到这里,明天进行进程方面知识的最后一次学习,然后就会进入到系统服务层面的学习,希望各位朋友在闲暇时间能够多多复习,咱们明天再见

猜你喜欢

转载自blog.csdn.net/Gao068465/article/details/107319393