一、进程
1.进程的定义:
程序是静态的代码文件
进程是指程序运行时的形态
进程是程序的一个副本
进程是有生命周期的(准备期 运行期 终止期)
进程与线程的关系:
2.进程和线程
进程是资源调用的最小单位
线程是进程的最小单位
程序执行流是从上到下贯穿运行的,当进程是多任务,CPU是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程.
线程的资源是共享的
3.进程状态:
R(TASK_RUNNING) ##可执行状态(running,ready)
S(TASK_INTRRUOPTABLE) ##可唤醒休眠
D(TASK_UNINTRRUPTABLE) ##不可唤醒休眠状态
T(TASK_STOP) ##暂停状态
Z(EXIT_ZOMBIE) ## 僵死状态
二、进程查看命令
1.gnome-system-monitor
图形进程查看工具
2、ps命令 (三种风格 unix bsd GNU)
ps ##进程查看
ps 进程查看
a 与终端相关的进程(当用户登录系统后产生的进程都是带终端的)
x 与终端无关的进程
u 用户信息归类查看
f 进程层级关系
o 显示指定参数 pid comm nice pri pcpu ppid
pid 进程ID
comm 进程名称
nice 进程优先级
pri 内核调度优先级
ppid 父进程号
stat 进程状态
user 用户名
group 用户组名
unix风格:
-o 显示指定参数(与bsd风格一样)
-e 显示所有进程
-f 显示完整信息格式
-H 显示进程的层级结构
- -sort = uid,-ppid,+pid 按某一参数,倒序/正序排序
显示进程所属用户及内存使用率,并按照内存使用率从大到小排名列出:
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 #进程名称
3.pgrep #进程过滤
- u uid 显示指定用户进程
- U user 显示指定用户进程
- t 显示指定终端进程
- l 显示进程名称
- a 显示进程的完整名称
- P 显示进程的子进程
- grep + cat 过滤显示cat进程9
pidof vim ##查看vim的pid
4、top命令的参数
top
##动态信息查看(ctrl+c结束查看)
- d 指定刷新频率
- b 以批次方式显示
- n 指定显示的批次数量
- top中的显示内容:
- 06:11:18 系统时间
- up 12:56 运行时长
- 1 users 系统中有1个用户登陆
- load average:0.20, 0.05, 0.02
- Tasks: 324 total 任务总量
- 1 running 正在运行
- 323 sleeping 休眠人物数量
- 0 stopped 被暂停数量
- 0 zombie 僵死人物数量
- %Cpu(s)
- 3.7 us 用户空间
- 2.0 sy 内核空间
- 0.0 ni nice值调整时间
- 97.7 id 空闲时间
- 0.2 wa 等待io时间
- 0.7 hi 处理硬件中断时间
- 0.1 si 处理软件中断时间
- 0.0 st 被偷走的时间(vm使用时间)
- MiB Mem :2640.1 total, 总量
- 626.5 free 空闲
- 1251…8 used 占用
- 761.8buff/cache 缓存
- MiB Swap : 交换分区量
top 内部指令 - P CPU排序
- M 内存排序
- T 累计占用CPU时间
- l 关闭/开启uptime信息
- t 关闭/开启cpu&task
- s 指定刷新频率
- k 操作流程
- u 查看指定用户进程
三、进程优先级
系统是多任务多用户操作模式,任务的重要性是有区分的,优先级确定任务的重要性
优先级:
- 范围:0–139
- 内核可控优先级范围:0-99
- 用户可控优先级:100-139 (值越大优先级越高)
- nice: -20~19 (值越小优先级越高)
- pri: 39~0 (39对应139)
renice -n -5 pid
更改优先级
nice -n -5 cat
指定优先级打开进程
- S sleeping
- < 优先级高
- s 顶级进程
- T stop
- N 优先级低
- R running
- + 运行在前台
四、进程前后台调用
< ctrl >+< z > 把占用shell的进程打入后台挂起
bg 把后台挂起的进程运行起来
fg 把后台进程调回前台
& 运行进程在后台 例: cat &
jobs 查看当前shell在后台的所有工作
五、进程信息号
1 #重新加载系统配置文件(source)
2 #清空内存中的进程数据
3 #清空内存中的鼠标(ctrl + )
9 #强行结束进程(不能被阻塞)
15 #正常关闭进程(会被阻塞)
18 #运行被暂停的进程
19 #暂停进程(不会被阻塞)
20 #暂停进程(会被阻塞)
进程信号控制工具:
kill 进程信号 pid
killall 进程信号 进程名称
pkill 进程信号 进程条件
六、systemd守护进程
ssh 远程主机ip -l 远程主机用户 ##连接远程主机
守护进程:通常pid为1,替内核分担程序控管的程序;systemctl 管理系统服务,服务指在系统中开启的共享系统资源到网络中的程序
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(注销)
- 234 noG+NETWORK(无图)
- 5 G+NETWORK(有图)
- 6 REBOOT(重启)
查看sshd状态:
七、系统中的登陆审计
w: #显示正在登陆系统的账号
w -i: #显示登陆来源 #/var/run/utmp
last # 历史登陆记录
lastb # 试图登录但未成功的