Linux基础学习(八)之系统中的进程管理

1、进程的定义

首先要分清进程和程序的区别,程序是静态的代码文件,而进程是指程序运行时的形态,进程是有生命周期的,分为准备期,运行期和终止期。线程是进程的最小单位,当进程是多任务,cpu是多核心时,多任务应该同时被每个核心处理,每个核心处理的任务叫线程,但是如果时单核心,线程就没有意义了。进程一般有五种状态:
(1)R(TAKS_RUNNING) 表示可执行态
(2)S(TASK_INTRRUPTABLE) 表示可唤醒休眠
(3)D(TASK_UNINTRRUPTABLE) 表示不可唤醒休眠
(4)T(TASK_STOP) 表示暂停状态
(5)Z(EXIT_ZOMBIE) 表示僵死态

2、进程查看命令

(1)我们可以使用gnome-system-monitor命令跳出任务管理器,里面可以查看各种进程,但是必须是有图形的才可以。
在这里插入图片描述
(2)然后,我们还可以直接使用ps命令,它可以简单查看进程信息,查看如图,显示了进程id,进程用到的终端,时间,进程名称。
在这里插入图片描述
想查看详细的进程信息,后面需要跟参数,一般有两类,一种是UNIX的风格没有-的,一种是GNU风格有-的,两种都可以使用。

参数含义
a与终端相关的进程
x与终端无相关的进程
u用户信息归类的查看方式
f进程层级关系
o显示指定参数,后面可以加pid,comm,nice,pri,pcpu,ppid,stat,user,group等
参数含义
-e显示所有进程
-f显示信息的完整格式
-H显示进程的层级结构
-o显示指定参数
–sort=排序,后面加参数X,就是按照X排序

下面做实验测试上面参数的效果,第一个图当使用ps ax ,表示查看与终端相关和与终端无关的进程,即全部进程。各项参数含义如下,PID表示进程id,TTY表示进程用到的终端,STAT表示进程的状态,TIME表示进程占用cpu时长,COMMAND表示进程名称。
在这里插入图片描述
第二个图查看进程的层级关系
在这里插入图片描述
第三个图代表查看与终端相关和无关的进程,显示cpu占用,内存占用,进程名称和命令名称,并按照内存的大小进行降序排列。
在这里插入图片描述
(3)进程太多,无法找到想查看的进程?可以使用pgrep命令来过滤进程。
<1>pgrep -u uid 显示指定用户进程
<2>pgrep -U user 显示指定用户进程
<3>pgrep -t tty 显示指定终端进程
<4>pgrep -l 显示进程名称
<5>pgrep -a 显示进程的完整名称
<6>pgrep -P 显示进程的子进程

实验测试如下,我们使用su切换到westos用户,使用cat命令,重新打开一个shell,由于westos用户uid是1000,pgrep -u 1000显示westos用户的进程,纯数字,想看名称可以使用pgrep -lu 1000pgrep -lU westos,可以看出一个shell的进程4489,一个cat的进程4519。pgrep -lt pts/1 查看终端和名称,pgrep -alt pts/1表示显示进程的完整名称。pgrep -P 3015显示进程3015的子进程。
在这里插入图片描述
(4)top ,可以动态查看进程,如图。第一行从左到右表示:系统时间,运行时长,系统中有一个用户登陆,平均加载时间。第二行从左到右表示:任务总量,正在运行状态,休眠人物数量,被暂停数量,僵尸人物数量。第三行从左到右表示:CPU用户空间,内核空间,nice值调整时间,空闲时间,等待时间,处理硬件中断时间,处理软件中断时间, 被偷走的时间(一般指虚拟机使用时间)。
第四行从左到右表示:内存总量,内存空闲,占用,缓存(buff指缓存将要写入硬盘的数据,cache指硬盘将要加载到内存里的数据)。第五行从左到右表示:交换分区用量总量,空闲,占用,有效内存。
在这里插入图片描述
那么top都会显示进程的什么信息呢?除了上面说过的,还有USER进程所有者的用户名,PR优先级,NI表示nice值(负值表示高优先级,正值表示低优先级),VIRT进程使用的虚拟内存总量(单位kb),RES进程使用的、未被换出的物理内存大小,SHR共享内存大小,S进程状态,%CPU上次更新到现在的CPU时间占用百分比,%MEM进程使用的物理内存百分比。
top命令的内部指令有很多:

内部指令功能
Pcpu排序
M内存排序
T累计展示cpu时间排序
l关闭/开启uptime信息
t关闭/开启cpu&task
s指定刷新频率
k操作进程(后面要加数字,后面讲具体代表什么)
u查看指定用户进程

当然也有top命令的参数:
<1>top -d time 指定刷新频率
<2>top -b 以批次方式显示
<3>top -n number 指定显示的批次数量

3、进程的优先级

系统中有那么多进程,那么谁先谁后呢?需要根据任务的重要性进行排序,就有了优先级的概念,范围是 0–139,其中内核自控优先级范围是0-99,用户可控优先级是100-139,同时减120换算为nice值即-20-19。renice 命令可以更改优先级,如图实验,先建立监控watch -n 1 “ps ax -o nice,pid,stat,comm | grep cat”,输入cat &表示打开cat并打入后台(后面会讲解),刚开始他的优先级是0,中间的,使用renice -n -5 6387把cat的优先级提高到-5。nice值数越小,优先级越高,同时状态栏会显示<,表示高优先级。
在这里插入图片描述
同理,5是低优先级,状态栏位N。
在这里插入图片描述
当然也可以直接指定优先级打开进程,使用nice命令,如图。
在这里插入图片描述

4、进程前后台调用

当打开某些进程时,会占用界面,导致无法有其他操作,这样就需要把进程打入后台,就可以输入其他命令了。
(1)<ctrl>+<z> 把占用shell的进程打入后台挂起
(2)bg 把后台挂起的进程运行起来
(3)fg 把后台进程调回前台
(4)& 直接运行进程在后台
(5)jobs 查看当前shell中在后台的所有工作
测试如图,打开vim编辑器会占用窗口,<ctrl>+<z> 把占用shell的进程打入后台挂起,打开cat,<ctrl>+<z> 把占用shell的进程打入后台挂起,jobs 查看当前shell中在后台的所有工作,现在有两个,我们注意到,有个+-号,可以理解为主次,+为主,那有什么用呢?当我们想要把后台进程调回前台时,输入fg,默认把cat调回来,但是一般使用时,我们需要fg 1/2这样精确。
在这里插入图片描述

5、进程的信息号

进程的信息号有1-31,分别表示不同的含义,用man signal可以查看分别是什么含义,如图,一般常用的有1 表示重新家在系统配置文件(不是重启,是重新加载,没有下线),2 清空内存中的进程数据,3 清空内存中的鼠标(ctrl \),9 是强行结束进程(不能被阻塞),15 是正常关闭进程(会被阻塞),18 运行被暂停的进程,19 暂停进程(不会被阻塞),20 暂停进程(会被阻塞的)。
在这里插入图片描述
控制进程信号的工具有三个:
(1)kill 进程信号 pid,如图测试,打开一个后台的vim,执行kill -9 7333,表示结束7333进程。
在这里插入图片描述
(2)killall 进程信号 进程名字,会对所有叫该名字的进程生效。测试如图,后台打开两个vim,执行killall -9 vim所有的vim都被结束了。
在这里插入图片描述
(3)pkill 进程信号 进程条件,测试如图,su切换到westos用户,此时使用pkill -9 -u westos,把westos用户的进程全部结束。
在这里插入图片描述

6、systemd守护进程

我们的内核管理全部事物,包括硬件和软件,他很累,需要有一个替内核分担程序控管的程序,叫systemd守护进程。想象我们是运维人员,如果出了问题,我们必须去机房进行维护吗?一出问题就去机房,很显然是不现实的,所以我们需要远程登陆操作主机,通过systemctl 命令管理系统服务,服务指在系统中开启的共享系统资源到网络中的程序。说到共享,就是CS模型,即Client客户端和Service服务端。比如我们用微信这个软件,在我们这就是客户端,而在腾讯总部,就是服务端,允许我们使用。具体看systemctl命令的用法:sshd是Secure Shell daemon对应服务端,ssh是Secure Shell 对应客户端。
(1)systemctl start sshd 开启
(2)systemctl stop sshd关闭
(3)systemctl status sshd查看状态
(4)systemctl reload sshd重新加载(在这里相当于restart,也是关了再开)
(5)systemctl restart sshd重新启动服务
(6)systemctl enable sshd设定服务开机自启动
(7)systemctl enable --now sshd设定服务开机自启动并当前马上开启服务
(8)systemctl disable sshd设定服务开启不启动
(9)systemctl list-units 查看系统所有服务当前状态
(10)systemctl list-unit-files 查看服务开机状态
(11)systemctl list-dependencies 列出服务依赖性
(12)systemctl mask sshd冻结服务
(13)systemctl unmask sshd解冻
(14)systemctl get-default 查看系统运行模式(系统运行模式分为0-6,0表示POWEROFF,1表示single,2-4表示无图形模式,5表示有图形模式,6表示重启)
(15)systemctl set-default 设定系统运行模式

测试如图,查看sshd的状态,绿色已开启,红色框表示开机自启动。
在这里插入图片描述
如图查看服务开机状态,static表示不可控,disabled表示开机不启动。
在这里插入图片描述
如图查看服务的依赖性:
在这里插入图片描述
如图为常用命令的使用:
在这里插入图片描述

7、系统中的登陆审计

(1)w 显示正在远程登陆系统的账号
在这里插入图片描述
(2)last远程登陆成功现在已经退出的
(3)lastb试图远程登陆但未成功的
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值