一、进程定义
程序是静态的代码文件,是指程序运行时的形态,是程序的一个副本,同时进程是有生命周期的(准备期,运行期,终止期)
进程&线程
进程是资源调用的最小单位
线程是进程的最小单位
程序执行流是从上倒下贯穿运行的
当进程是多任务物,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程,线程资源是共享的.
进程状态
#R(TAKS_RUNNING) ##可执行态(running,ready)
#S(TASK_INTRRUPTABLE) ##可唤醒休眠
#D(TASK_UNINTRRUPTABLE) ##不可唤醒休眠
#T(TASK_STOP) ##暂停状态
#Z(EXIT_ZOMBIE) ##僵死态
二、查看进程的命令
gnome-system-monitor ##图形进程查看工具
ps [参数] ##进程查看
-a ##显示所有进程
-u ##用户信息归类查询
-x ##与终端无关的进程
pgrep [参数] ##进程过滤
-u uid ##显示指定用户的进程
-U user
-t tty ##显示指定终端进程
-l ##显示进程名称
-a ##显示完整的进程名称
-p ##进程的子进程
top ##动态进程查看,用于动态监视进程活动与系统负载等信息
三、进程优先级
系统是多任务、多用户的操作模式,任务的重要性要有区分,使用“优先级”来区分
范围: 0--139
内核自控优先级范围:0-99
用户可控优先级:100-139
nice -20 - 19
priority 0-139 (100-139)
优先级修改
renice -n -7 43331 #更改优先级
nice -n -7 vim #指定优先级打开进程
ps ax -o pid,nice,comm | grep vim #查看优先级
优先级标识符 | 含义 |
---|---|
S | sleeping |
< | 优先级高 |
s | 顶级进程 |
T | stop |
N | 优先级底 |
R | running |
+ | 运行在前台 |
进程前后台调用
<crtl> + <z> ##将占用shell的进程放到后台挂起
jobs #查看当前shell中在后台的所有进程
bg id #把后台挂起的进程运行起来
fg id #把后台进程调回前台
command & #后台运行进程
进程控制
kill 进程信号 pid
killall 进程信号 进程名字
pkill 进程信号 进程条件
进程信号 | 含义 |
---|---|
1 | 重新家在系统配置文件(source) |
2 | 清空内存中的进程数据 |
3 | 清空内存中的鼠标(ctrl+) |
9 | 强行结束进程(不能被阻塞) |
15 | 正常关闭进程(能被阻塞) |
18 | 运行被暂停的进程 |
19 | 暂停进程(不能被阻塞) |
20 | 暂停进程(能被阻塞) |
systemd守护进程
替内核分担程序管理,通常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 | 查看系统运行模式 |
登录审计
查看用户的登入的历史记录
w #显示正在登陆系统的账号
last #登录成功但是已经退出的账号
lastb #试图登录但是没有成功