1.进程定义
进程的定义
:
程序是静态的代码文件
进程是指程序运行时的形态
进程是程序的一个副本
进程是有生命周期的
(
准备期
,
运行期
,
终止期
)
进程
&
线程
进程是资源调用的最小单位
线程是进程的最小单位
程序执行流是从上倒下贯穿运行的
当进程是多任务物
,
cpu
是多核心
,
多任务应该同时被每个核心处理
,
每个核心处理的任务叫线程
线程资源是共享的
.
#
进程状态
#R(TAKS_RUNNING) ##
可执行态
(
running
,
ready
)
#S(TASK_INTRRUPTABLE) ##
可唤醒休眠
#D(TASK_UNINTRRUPTABLE) ##
不可唤醒休眠
#T(TASK_STOP) ##
暂停状态
#Z(EXIT_ZOMBIE) ##
僵死态
2.进程查看命令
gnome
-
system
-
monitor
图形进程查看工具
ps
#
进程查看
#ps
命令的三种执行风格
unix bsd GNU
#a
与终端相关的进程
(
当用户登陆系统后产生的进程都是带终端的
)
#x
与终端无关相关的进程
#u
用户信息归类的查看方式
#f
进程层级关系
#o
显示指定参数
# pid comm nice pri pcpu ppid stat,user,group
#
#
-
e
显示所有进程
#
-
f
显示信息的完整格式
#
-
H
显示进程的层级结构
#
-
o
显示指定参数
#
--
sort
= 排序
#
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
| 进程名称 |
pgrep
| 进程过滤 |
-
u uid
| 显示指定用户进程 |
-
U user
|
显示指定用户进程
|
-
t tty
|
显示指定终端进程
|
#
-
l
|
显示进程名称
|
#
-
a
| 显示进程的完整名称 |
-
P
|
进程的子进程
|
pidof vim
| 查看vim的pid |
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
:
换分区用量
#
#top
命令的参数
-
d
|
指定刷新频率
|
-
b
|
以批次方式显示
|
-
n
| 指定显示的批次数量 |
#top
内部指令
P
|
cpu
排序
|
M
|
内存排序
|
T
|
累计占用
cpu
时间排序
|
l
|
关闭
/
开启
uptime
信息
|
t
| 关闭/开启cpu&task |
s
|
指定刷新频率
|
k
|
对指定进程进行操作
|
u
名
|
查看指定用户进程
|
PID
| 进程id |
USER | 进程所有者的用户 |
PR
|
优先级
|
NI
|
nice
值
。负值表示高优先级,
正值表示低优先级
|
VIRT
|
进程使用的虚拟内存总量
,
单位
kb
。
VIRT
=
SWAP
+
RES
|
RES
| 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
SHR | 共享内存大小,单位kb |
S
|
进程状态
(D
=
不可中断的睡眠状态
,R
=
运行
,S
=
睡眠
,T
=
跟踪
/
停止
,Z
=
僵尸进
程
)
|
%CPU
|
上次更新到现在的
CPU
时间占用百分比
|
%MEM | 进程使用的物理内存百分比 |
TIME
+
|
进程使用的CPU
时间总计
,
单位
1
/
100
秒
|
COMMAND | 命令名/命令行 |
3.进程优先级
系统时多任务多用户的操作模式
任务的重要性是有区分的
如何确定任务的重要性
“
优先级
”
范围
:
0
--
139
内核自控优先级范围
:
0
-
99
用户可控优先级
:
100
-
139
nice :
-
20
-
19
renice
-
n
-
5 43331
##
更改优先级
nice
-
n
-
5
cat ##
指定优先级打开进程
ps ax
-
o pid,nice,comm
|
grep cat
ps
---- >
pri
---
39
-
0
nice
20
-
19
priority
0
-
139
(
100
-
139
)
进程状态
S
|
sleeping
|
<
|
优先级高
|
s
|
#
级进程
|
T
|
stop
|
N |
优先级底
|
R
|
running
|
+ | 运行在前台 |
4.进程前后台调用
<ctrl>+<z>
|
把占用
shell
的进程打入后台挂起
|
bg
|
把后台挂起的进程运行起来(bg job号)
|
fg
|
把后台进程调回前台(fg job号)
|
&
|
运行进程在后台(gedit &)
|
jobs | 查看当前shell中在后台的所有工作 |
5.进程信息号
man 7
signal
进程信号
1
|
重新家在系统配置文件
(source)
|
2
|
清空内存中的进程数据
|
3
|
清空内存中的鼠标
(ctrl
+\
)
|
9
|
强行结束进程
(
不能被阻塞
)
|
15
|
正常关闭进程
(
会被阻塞
)
|
18
|
运行被暂停的进程
|
19
|
暂停进程
(
不会被阻塞
)
|
20
| 暂停进程(会被阻塞) |
#
进程信号控制工具
kill 进程信号 pid
killall
进程信号 进程名字 killall -9 name
pkill 进程信号 进程条件
###
6.
systemd
守护进程
###
##
实验环境
node2.westos.com
-------- >
172.25.254.20
#node1.westos.com
---------->
172.25.254.22
#
远程操作主机
#ssh
远程主机
ip
-
l
远程主机用户
确保两台主机之间可以通信:ping +ip
20——node2 22——node1
远程登陆node1
#
守护进程
#
替内核分担程序控管的程序
通常pid为1
#systemd -----> systemctl
#systemctl 管理系统服务
#
服务指在系统中开启的共享系统资源到网络中的程序
#cs: client
------
server
systemctl命令的用法
start
|
开启
|
stop
|
关闭
|
status
|
查看状态
|
reload
| 重新加载 |
enable
| 设定服务开机启动 |
restart
| 重新启动服务 |
enable
--
now
|
设定服务开机启动并当前开启服务
|
disable
|
设定服务开启不其动
|
list
-
units
|
查看系统所有服务当前状态
|
list
-
unit
-
files
|
查看服务开机状态
|
list
-
dependencies
|
列出服务依赖性
|
mask
| 冻结服务 |
unmask
| 解锁 |
set
-
default
| 设定系统运行模式 |
multi
-
user.target
| 无图形网络模式 |
graphical.target | 有图形的网络模式 |
get-default | 查看系统运行模式 |
##
系统运行模式
#
0
|
POWEROFF(关机)
|
#
1
|
single(单用户模式)
|
#
2
|
noG
+
NETWORK(无图形的网络模式)
|
#
3
#
4
#
5
| G+NETWORK(无图形的网络模式) |
#6 | REBOOT(重启) |