<VII>进程管理


一、进程的定义

1)进程的定义:程序是静态的代码文件
>进程是指程序运行时的形态
>进程是程序的一个副本
>进程是有生命周期的(准备期,运行期,终止期)
2)进程&线程
>进程是资源调用的最小单位
>线程是进程的最小单位
>程序执行流是从上倒下贯穿运行的
>当进程是多任务,cpu 是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程
>线程资源是共享的.线程是进程里面子进程,能同时进行

3)进程状态(前4种正常,Z是病态)

状态显示 状态含义
R(TAKS_RUNNING) 可执行态(running,ready) 包括正在进行和将要进行两个状态
S(TASK_INTRRUPTABLE) 可唤醒休眠 进程cpu处理该进程超时的时候,不执行了,进入后台;当要执行可执行的时候还能执行
D(TASK_UNINTRRUPTABLE) 不可唤醒休眠 程序所需要的资源,系统没有加载完成 。。加载完后会被处理
T(TASK_STOP) 暂停状态 人为操作
Z(EXIT_ZOMBIE) 僵死态 程序结束后仍然占用cpu资源不放(系统出现bug)

二、进程的查看命令

在桌面Applications–>sundry里的system monitor可查看电脑进程;或使用命令gnome-system-monitor #图形进程查看工具

1.ps #进程查看

指令 含义 代码
a 与终端相关的进程(当用户登陆系统后产生的进程都是带终端的) ps a
x 与终端无关相关的进程 #ps ax #显示相关和不相关的,所有进程。 ps x
u 用户信息归类的查看方式 ps u
f 进程层级关系 进程里的子进程 ps f
o 只显示指定的参数 pid comm nice pri pcpu ppid stat,user,group ps o pid,ppid,%cpu
-e 显示所有进程,=包括相关+不相关。与-e作用相同 ps -e =ps ax
-f 显示信息的完整格式 ps -f
-H 显示进程的层级结构 ps -H
-o 只显示指定的参数 ps -0 pid,ppid,%cpu
–sort= 查看排序 ps ax -o %cpu,comm --sort=%cpu

ps ax 显示信息如下:

表头 含义
PID 进程 id
TTY 进程用到的终端
STAT 进程状态
TIME 进程占用 cpu 时长
COMMAND 进程名称

ps aux 显示信息如下:

表头 含义
ps aux 显示信息如下:
USER 进程所有人
PID 进程 id
%CPU 进程使用 cpu 的用量
%MEM 进程所用到的内存用量
VSZ 进程使用的虚拟内存大小
RSS 进程常驻内存中的数据大小
TTY 进程用到的终端
STAT 进程状态
START 进程运行时长
TIME 进程占用 cpu 时长
COMMAND 进程名称

在这里插入图片描述

2.pgrep #进程过滤

[root@westos_student3 ~]# pgrep -u 8001         #显示指定用户ID为8001的用户进程,或preg -U kiosk 显示指定用户名的用户进程  
[root@westos_student3 ~]# pgrep -t pts/0        # 显示指定终端pts/0的进程
[root@westos_student3 ~]# pgrep -l 8001         #显示进程id为8001的进程名称
[root@westos_student3 ~]# pgrep-a 8001         #显示进程id为8001的完整名称
[root@westos_student3 ~]# pgrep-P  1855        #显示进程1855的子进程
[root@westos_student3 ~]# pidof vim            #查看 vim 的 pid

在这里插入图片描述

3.top #动态进程查看

1)top 中的内容显示信息

top- 含义
09:48:51 系统时间
up 18:54 运行时长
2 users 系统中有两个用户登陆
load average: 0.75, 0.53, 0.41 1min 5min 15min
Tasks 含义
331 total 任务总量
3 running 正在运行
329 sleeping 休眠人物数量
0 stopped 被暂停数量
0 zombie 僵死人物数量
%Cpu(s) 含义
1.5 us 用户空间
1.9 sy 内核空间
0.0 ni nice值调整时间
58.9 id 空闲时间
0.0 wa 等待 io 时间
2.1 hi 处理硬件中断时间
0.2 si 处理软件中断时间
0.0 st 被偷走的时间(vm 使用时间)
MiB Mem 含义
7664.6 total 总量
5383.9 free 空闲
1312.1 used 占用
968.8 buff/cache 缓存
MiB Swap 含义
4000.0 total 总量
4000.0 free 空闲
0.0 used 占用
2518.8 avail Mem 可用内存

2)top 命令的参数
第一步:打开top

[root@westos_student3 ~]# top       #打开top

第二步:输入参数

参数 含义
-d 指定刷新频率
-b 以批次方式显示
-n 指定显示的批次数量

在这里插入图片描述

3)top 内部指令

参数 含义
P cpu 排序
M 内存排序
T 累计占用 cpu 时间排序
l 关闭/开启 uptime 信息
t 关闭/开启 cpu&task
s 指定刷新频率
k 操作进程。注:谨慎操作
u 查看指定用户进程

练习 :内存使用量排在前5的,只显示pid

[root@westos_student3 ~]# ps ax -o pid --sort=-%mem | head -n 6|tail -5   #前六个里面的后五个,去掉了表头PID

三、进程优先级

1)–>系统是多任务多用户的操作模式
  -->任务的重要性是有区分的
  -->如何确定任务的重要性
    “优先级”范围: 0–139
    内核自控优先级范围:0-99
    用户可控优先级:100-139

注:ps —> unix范围是0到39
  nice —> 20-19;nice范围是-20-19,即负20到正19 越负(数字越小)优先级越高。-20是100,-19是101(对应上面的用户可控优先级:100-139)
  priority —> 0-139(linux里面的100-139对应unix范围是0到39)

[root@westos_student3 ~]# ps   #进程查看
[root@westos_student3 ~]# ps -o comm,pid,stat,nice   #只显示指定的参数
[root@westos_student3 ~]# renice -n 5 3046     #更改优先级位5,3046是进程id.
[root@westos_student3 ~]# ps -o comm,pid,stat,nice   #再显示一下指定的参数,发现进程的优先级已改
[root@westos_student3 ~]# renice -n -1 3046     #更改优先级位-1,3046是进程id.
[root@westos_student3 ~]# nice -n -5 vim &    #指定优先级打开进程,并挂在后台运行

在这里插入图片描述
2)stat的参数说明
S   #sleeping
<   #优先级高
s   #顶级进程
T   #stop
N   #优先级底
R   #running
+   #运行在前台

在这里插入图片描述

四、进程前后台调用

第一步:gedit 或cat  &emsp#把进程挂起在后台(进程回车后,按ctrl + z)
第二步:bg 1   #把后台挂起的进程在后台运行起来,1为挂在后台的序号,可用jobs查看。或使用cat &   #直接运行进程在后台

第三步:fg 1   #把后台进程调回前台运行,结束进程需按ctrl + c

第四步:jobs   #查看当前 shell 中在后台的所有工作

在这里插入图片描述

五、进程信息号

进程信号 含义
1 重新家在系统配置文件(source)
2 清空内存中的进程数据
3 清空内存中的鼠标(ctrl+)
9 强行结束进程(不能被阻塞)
15 正常关闭进程(会被阻塞)
18 运行被暂停的进程
19 暂停进程(不会被阻塞)
20 暂停进程(会被阻塞的)
进程信号控制工具 含义
kill 进程信号 pid; 只关闭进程,不改变进程,不用重启
killall 进程信号 进程名字
pkill 进程信号 进程条件

在这里插入图片描述
在这里插入图片描述

六、systemd 守护进程

1.实验环境

linux.westos.com -------- > 172.25.254.10
node1.westos.com ----------> 172.25.254.20
pstree #查看进程树

2.远程操作主机

ssh 远程主机 ip -l 远程主机用户

3.守护进程

1)替内核分担程序控管的程序,通常 pid 为 1
        systemd -----> systemctl
        systemctl 管理系统服务
2)服务指在系统中开启的共享系统资源到网络中的程序
        cs client ------ server

4.systemctl 命令的用法

start       ##开启
stop       ##关闭
status      ##查看状态
reload      ##重新加载
restart      ##重新启动服务
enable      ##设定服务开机启动
enable --now    ##设定服务开机启动并当前开启服务
disable      ##设定服务开启不其动
list-units      ##查看系统所有服务当前状态
list-unit-files     ##查看服务开机状态
list-dependencies    ##列出服务依赖性
mask       ##冻结服务
unmask      ##解锁
set-default     ##设定系统运行模式
#multi-user.target   无图形网络模式
#graphical.target   有图形的网络模式
get-default     ##查看系统运行模式
##系统运行模式0-6
       0 POWEROFF
       1 single
       2 noG+NETWORK
       3
       4
       5 G+NETWORK
       6 REBOOT

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qiao_qing/article/details/109209587
今日推荐