linux中的进程管理

1 进程的定义

程序是静态的代码文件,进程是指程序运行时的形态,进程是程序的一个副本。当运行进程的时候,系统会把当前所用到的所有代码加载到内存里面,并非直接调用硬盘里的内容,而是把硬盘里的东西复制到内存里,然后再运行。进程是有生命周期的:准备期,把硬盘里的东西复制到内存里所需要的时间;运行期;终止期,运行完毕后,程序会关闭所占用的系统资源,所释放的资源被系统再次回收。进程就相当于系统中程序所制造的运行事件。

1.1 进程和线程

进程是资源调用的最小单位,线程是进程的最小单位。程序执行流是从上到下贯穿运动的。当进程是多任务,cpu是多核心时,多任务应该同时被每个核心处理,每个核心处理的任务叫线程,线程资源是共享的。
举个例子,假如打扫卫生是一个进程,打扫卫生里面的扫地,擦桌子等是线程,双核cpu可以同时处理两个线程,这样就就加快了进程的处理速度。若是单核cpu,那么线程就没有意义了。

1.2 进程的状态

命令状态
R(TASK_RUNNING)可执行状态(running/ready),即正在被cpu处理,或者是等待被cpu处理,已经加载好资源的动作
S(TASK_INTRRUPTABLE)可唤醒休眠,即cpu在使用时,每个程序对cpu的占用时间是有严格限制的,当使用超时后,该程序就会进入休眠状态,若该程序需要再次使用cpu时,可以立即激活
D(TASK_UNINTRRUPTABLE)不可唤醒休眠,即当一个程序在系统中工作的过程中,有的资源还没有被加载完,此时该程序没法被cpu处理,也就是不可唤醒休眠
T(TASK_STOP)暂停状态,该状态是人为控制的
Z(EXIT_ZOMBIE)僵死态,即进程已经结束,但是该进程还在占用cpu资源,我们可以手动结束该进程

2 进程查看命令

可以点击Applications---->Utilities---->System Monitor进程查看框,里面的依赖性是指某个进程是其他进程运行时的必要条件;右键单击菜单栏,可以选择要显示的状态;对于进程栏,可以右键单击,调整它的优先级,结束进程等。
进程窗口:
在这里插入图片描述
选择要显示的进程状态:

在这里插入图片描述
进程控制:
在这里插入图片描述
查看进程的依赖性:
在这里插入图片描述

2.1 图形进程查看工具

在这里插入图片描述

2.2 命令进程查看 (ps)

ps命令的三种执行风格:unix,在unix中,该命令后面的参数是不需要加‘-’的、 bsd 、GNU。

ps命令参数含义
ps命令进程查看
a与终端相关的进程,即带字符设备的进程,当用户登陆系统后产生的进程都是带终端的。执行‘ps a’命令后会有一列tty,表示带字符设备
x与终端无关相关的进程,执行‘ps x’命令后会有一列ty列为‘?’ ;ax就代表所有与终端相关的和无关的进程
u用户信息归类的查看方式。注意‘ps u’是不能单独用的,因为a和x会显示其他信息,而u单用来显示用户,所以应该用‘ps au’或‘ps xu’ 或‘ps aux’
f进程层级关系,使用方法同u参数
o显示指定的某参数,如pid comm nice pri pcpu ppid stat user group等。可以使用ps aux 查看默认显示,也就是表头。使用方法:ps axo}
-e显示所有进程,与ax作用相同
-f显示信息的完整格式,使用方法:ps -ef
-H显示进程的层级结构 ,使用方法:ps -eH
-o显示指定参数
–sort=某参数,即按照该参数排序。使用方法:ps ax -o %mem,comm --sort=%mem(正序)/ps ax -o %mem,comm --sort=-%mem(倒序)

注意:a,x,u,f,o参数没有‘-’,表明它时unix风格。
1)ps命令,查看当前进程:
在这里插入图片描述
ps a 命令:
在这里插入图片描述
ps x:
在这里插入图片描述
px aux:
在这里插入图片描述
2)查看层级结构:
在这里插入图片描述
在这里插入图片描述
3)显示指定参数:
在这里插入图片描述
4)显示所有参数:
在这里插入图片描述
5)显示信息完格式:
在这里插入图片描述
6)显示层级结构:
在这里插入图片描述
在这里插入图片描述
7)按照某参数排序:
在这里插入图片描述
在这里插入图片描述
ps ax 显示信息:

显示信息含义
PID进程id
TTY进程用到的终端
STAT进程状态
TIME进程占用cpu时长
COMMAND进程名称

在这里插入图片描述
ps aux 显示信息:

USER进程所有人
PID进程id
%CPU进程使用cpu的用量
%MEM进程所用到的内存用量
VSZ进程使用的虚拟内存大小
RSS进程常驻内存中的数据大小
TTY进程用到的终端
STAT进程状态
START进程运行时长
TIME进程占用cpu时长
COMMAND进程名称

在这里插入图片描述

2.3 进程过滤(pgrep)

参数含义
-u uid显示指定用户进程
-U user显示指定用户进程
-t tty显示指定终端进程
-l显示进程名称,例如:grep -lt bts/0
-a显示进程的完整名称,例如: grep -lat bts/0
-P pid显示进程的子进程pid

过程过滤命令用法:
在这里插入图片描述

2.4 查看进程的pid(pidof)

例如 :pidof vim(进程)/ pidof gedit ,当开启了多个gedit时,显示进程id还是一个,因为它是在同一个进程里开了两个tab;但是当在两个shell中分别开启了两个vim,就会显示两个进程id。
在这里插入图片描述

2.5 动态进程查看(top)

top命令动态查看进程,动态的情况下,进入top内部,显示内容会不完全,只显示一部分。只输入一个top命令时,默认三秒刷新一次:
在这里插入图片描述
top命令的参数:

参数含义
-d指定刷新频率例如:top -d 1
-b以批次方式显示,不进入top内部
-n指定显示的批次数,例如:top -b -n 1 一批次就显示结束;top -b -n 2,两批次显示结束;不加b时只有n参数时,会自动进入top内部。

指定刷新频率为1:
在这里插入图片描述
以批次方式显示:
在这里插入图片描述
显示批次为1:

在这里插入图片描述
top内部命令(指输入top命令后,直接在top内部输入的命令):

命令含义
PCPU排序
M内存排序
T累计占用cpu时间排序
l关闭/开启uptime信息(负载信息),即 top内部的第一行
t关闭/开启cpu&task
s指定刷新频率
k操作进程。按下k之后,输入指定id,而后系统会询问要发出什么信号,操作即可,按下q可推出该操作
u查看指定用户进程。按下u直接回车,会显示所有进程,输入指定用户名后回车,只显示该用户进程

查看指定用户进程:
在这里插入图片描述
在这里插入图片描述

top内部显示信息含义
PID进程id
USER进程所有者的用户名
PR优先级
NInice值,负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb 。VIRT=SWAP+RES
RES进程使用的,未被换出的物理内存大小,单位kb RES=CODE+DATA
SHR共享内存大小,单位kb
S进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
%CPU上次更新到现在的cpu时间占用百分比
%MEN进程使用的物理内存百分比
TIME+进程使用的cpu时间总计,单位1/100秒
COMMAND命令名/命令行

在这里插入图片描述

3 进程优先级

系统是多任务多用户的操作模式,任务的重要性是有区分的,如何确定任务的重要性,由优先级决定。
优先级范围:

范围含义
0-139总范围
0-99(不可改)内核自控优先级范围
100-139(nice或pri)用户可控优先级

nice值:是系统可控的优先级(相当于优先级的另一种说法),可以把别人的优先级调的比自己高
nice值范围:-20-19(-20对应上面的100,-19对应上面的139,也就是说优先级越负,优先级越高)
priority:39-0 (在unix中,39对应100,0对应139,也就是说优先级越小,优先级越高)
进程状态( 查看进程状态可以使用stat):

进程状态含义
Ssleeping
<优先级高
s顶级进程
Tstop
N优先级底
Rrunning
+运行在前台

1)优先级监控命令:
在这里插入图片描述
在这里插入图片描述

2)输入cat ,查看优先级范围,默认开启之后的优先级pri=19,nice=0:
在这里插入图片描述
在这里插入图片描述
3)在优先级没开之前,自己设定nice值(nice -n 5 cat ):
在这里插入图片描述
在这里插入图片描述
4)当命令程序经执行了,优先级已经开了,想更改nice值 (renice -n 5 5094 )后面加的是正在运行程序的id:
在这里插入图片描述
在这里插入图片描述
5)建立监控:watch -n 1 'ps ax =0 pri,nice,pid,comm,stat | grep cat :在这里插入图片描述
查看监控:显示S+:表示sleeping状态,在前台运行:
在这里插入图片描述
6)再建立一个监控:Ss表示睡眠状态下的顶级进程:
在这里插入图片描述在这里插入图片描述

4 进程前后台调用

命令含义
ctrl+z把占用shell的进程打入后台挂起,比如开启了一个gedit ,可以使用该快捷键,把进程打入后台
bg把后台挂起的进程运行起来,同时不占用终端
fg +jobs号把后台进程调回前台
&运行进程在后台
jobs查看当前shell中在后台的所有工作
gedit &使程序再运行时,就在后台

在这里插入图片描述

5 进程信息号

进程信息号是内核对进程控制的一种手段。

5.1 进程信息号

使用 man 7 signal 查看进程信号(共1-31):
在这里插入图片描述
下面是我们自己可控的进程信息号,其他进程信息号是不可控的:

进程信息号含义
1重新加载系统配置文件(source)
2清空内存中的进程数据 ,相当于ctrl +c
3空内存中的鼠标(ctrl+), 按下该快捷键,鼠标消失,移动鼠标出现
9强行结束进程(不能被阻塞)
15正常关闭进程(会被阻塞),当发送该信号给内核后,内核会判断该进程是否重要,如果是重要的,会拒绝该信号
18运行被暂停的进程
19暂停进程(不会被阻塞)
20暂停进程(会被阻塞)

5.2 进程信号控制工具

命令含义
kill -进程信号 pid只结束单个进程
killall -进程信号 进程名结束该名称的所有进程
pkill -进程信号 进程条件例如:pkill -u westos 可以结束一个进程 ;想全部结束时pkill -9 -u westos

1)查看当前进程,并使用15关闭某进程:
在这里插入图片描述
2)在shell内存中输入数据:
在这里插入图片描述
清空内存中的bash进程数据 :
在这里插入图片描述
在这里插入图片描述
3)建立监控:
在这里插入图片描述
在这里插入图片描述
4)强行结束4090进程:
在这里插入图片描述
在这里插入图片描述
结束该名称的所有进程:
在这里插入图片描述
在这里插入图片描述
5)建立监控:
在这里插入图片描述
在这里插入图片描述
6)结束一个名为westos的进程:
在这里插入图片描述
在这里插入图片描述
结束全部名为westos的进程:
在这里插入图片描述
在这里插入图片描述

6 systemd守护进程

6.1 什么是守护进程

守护进程是替内核分担程序控管的程序。
systemd的pid为1 ,输入pstree 可以查看进程树,可以看到下面的所有进程都是靠systemd控制的。
在这里插入图片描述

systemd进程对外提供了一个控制命令:systemctl(管理系统服务)
服务指在系统中开启的共享系统资源到网络中的程序。

远程操作主机:
ssh 远程主机ip -l 远程主机用户 eg:ssh -Xl root 172.25.254.10(ssh是客户端,sshd是服务端;当sshd是开启状态时,ssh才能连接上sshd)

6.2 systemctl命令的用法

参数含义
start开启
stop关闭 。关闭再重启sshd命令后,他的man pid 会发生改变
status查看状态
reload重新加载(不重启的情况下改变系统配置,不是所有服务都支持的)
restart重新启动服务
enable设定服务开机启动
enable --now设定服务开机启动并当前开启服务
disable设定服务开机不启动。不管设置了enable还是disable,不会影响其当前服务的状态)
disable --now设定服务开机关闭并当前关闭服务
list-units查看系统所有服务当前状态
list-unit-files查看服务开机状态
list-dependencies列出服务依赖性(绿色表示开着,白色表示已经用过)
mask冻结服务。stop停止后还可以start打开。但是mask冻结后,start无法打开,解锁后可用
unmask解锁
set-default multi-user.target设定系统运行模式为无图形网络模式
set-default graphical.target设定系统运行模式为有图形的网络模式
get-default查看系统运行模式

注意:在当前状态下可以直接输入 init 3 进入无图形模式; init 5 再打开有图模式;runlevel 可以查看运行级别
系统运行模式:

模式含义
0POWEROFF 关机
1single单用户模式
2noG+NETWORK无图形网络模式
3noG+NETWORK无图形网络模式
4noG+NETWORK无图形网络模式
5+NETWORK 有图形网络模式
6REBOOT重启

1)查看sshd服务状态:
在这里插入图片描述
关闭该服务,查看服务状态:
在这里插入图片描述
2)建立监控:
在这里插入图片描述
在这里插入图片描述
3)重新加载该服务:
在这里插入图片描述
设定服务开机不启动:
在这里插入图片描述
查看监控,设置disable,但不会影响当其服务的状态:在这里插入图片描述
4)设定服务开机启动:
在这里插入图片描述
查看监控,设置enable,但不会影响其当前服务的状态:
在这里插入图片描述
5)设置开机的时后关闭,当前也关闭:
在这里插入图片描述
在这里插入图片描述
设置开机的时后开启,当前也开启:
在这里插入图片描述
在这里插入图片描述
6)查看系统所有服务当前状态:
在这里插入图片描述
在这里插入图片描述
7)查看服务开机状态:
在这里插入图片描述
在这里插入图片描述
8)列出服务依赖性:
在这里插入图片描述
在这里插入图片描述
9)冻结及解锁服务:
在这里插入图片描述
10)init 3,进入无图形网络模式(init 5可退出):
在这里插入图片描述
11)systemctl命令设置系统无图形网络模式:
在这里插入图片描述
systemctl命令设置系统图形网络模式:
在这里插入图片描述

7 系统中的登陆审计

命令含义
w显示正在登陆你系统的账号;w -i 显示登陆来源 ;该命令所访问的文件/var/run/utmp
last登陆成功现在已经退出的;该命令所访问的文件/var/log/wtmp
lastb试图登陆但未成功;该命令所访问的文件/var/log/btmp

注意:
虚拟机可以连真机,但反过来不行
‘> /var/log/wtmp’ 命令 表示清理该文件的信息
ifconfig 命令可以查看自己主机id
连接自己的虚拟机:
在这里插入图片描述
查看系统中的登陆审计:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值