文章目录
一、进程的定义
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