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 ##
把后台挂起的进程运行起来
fg ##
把后台进程调回前台
&
##
运行进程在后台
jobs ##
查看当前
shell
中在后台的所有工作
###
5.
进程信息号
###
man
7
signal
#
进程信号
1
#
重新家在系统配置文件
(source)
2
#
清空内存中的进程数据
3
#
清空内存中的鼠标
(ctrl
+\
)
9
#
强行结束进程
(
不能被阻塞
)
15
#
正常关闭进程
(
会被阻塞
)
18
#
运行被暂停的进程
19
#
暂停进程
(
不会被阻塞
)
20
#
暂停进程
(
会被阻塞的
)
#
进程信号控制工具
kill
进程信号
pid
killall
进程信号 进程名字
pkill
进程信号 进程条件
###
6.
systemd
守护进程
###
##
实验环境
#linux.westos.com
-------- >
172.25.254.10
#node1.westos.com
---------->
172.25.254.20
#
#
远程操作主机
#ssh
远程主机
ip
-
l
远程主机用户
#
守护进程
#
替内核分担程序控管的程序
#
通常
pid
为
1
#systemd
----->
systemctl
#systemctl
管理系统服务
#
服务指在系统中开启的共享系统资源到网络中的程序
#cs client
------
server
#
#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
###
7.
系统中的登陆审计
###
w ##
显示正在登陆系统的账号
##
-
i
显示登陆来源
#
/
var
/
run
/
utmp
last ##
登陆成功现在已经退出的
##
/
var
/
log
/
wtmp
lastb ##
试图登陆但未成功
##
/
var
/
log
/
btmp