目录
一、进程定义
1、程序和进程
程序:静态的代码文件
进程:程序运行时的形态。进程有生命周期(准备期、运行期、终止期)。
两者的关系:进程是程序的一个副本。
2、进程和线程
进程是资源调用的最小单位。
线程是进程的最小单位。
程序执行流是从上到下贯穿运行的。
当进程是多任务,CPU是多核心。多任务应该被每个核心处理,每个核心处理的任务叫做线程。线程资源是共享的。
3、进程的状态
R(running) | 可执行状态(运行,准备状态) |
S | 可唤醒休眠(超时了但一旦准备好即可运行) |
D | 不可唤醒休眠(正在查找资源,找到后即可运行) |
T | 暂停状态(停止加载资源) |
Z | 僵死态(资源加载完毕但未释放资源使用) |
二、进程查看命令
1、图形进程查看
1)、打开一个shell,输入以下命令:
gnome-system-monitor #不常用,只有在图形模式打开后才生效
会打开如图所示图形界面:
2)、直接从图形界面打开:
2、ps进程查看
ps命令的三种执行风格:UNIX,BSD,GUN
a | 与终端相关的进程(当用户登录系统后产生的进程都是带终端的) |
x | 与终端无关的进程 |
u | 用户信息归类的查看方式 |
f | 进程层级关系 |
o | 显示指定参数(pid,comm,nice,pri,pcpu,ppid,stat,user,group) |
-e | 显示所有进程 |
-f | 显示信息的完整格式 |
-H | 显示进程的层级结构 |
-o | 显示i指定参数 |
--sort | 按照进程某属性排序显示 |
3、pgrep进程过滤
-u upid | 显示指定用户进程 |
-U user | 显示指定用户进程 |
-t tty | 显示指定终端进程 |
-l | 显示进程名称 |
-a | 显示进程的完整名称 |
-P | 显示进程的子进程 |
4、pidof vim
查看vim的pid
5、top动态进程查看
显示所有的动态进程
6、top命令的参数
-d | 指定刷新频率 |
-b | 以批次方式显示 |
-n | 指定显示的批次数量 |
修改刷新时间为1秒
指定显示的批次数量为2
7、top内部指令
P | cpu排序(默认从大到小) |
M | 内存排序 |
T | 累计展铜cpu时间排序 |
s | 指定刷新频率 |
k | 操作进程 |
u | 查看指定用户进程 |
按照cpu排序
内存排序
查看指定用户jobbin的进程
查看jobbin用户的动态进程
三、进程优先级
系统是多任务多用户的操作模式。
任务的重要性也有所不同,优先级是用来确定任务的重要性的。
1、优先级范围
范围:0--139
1)、内核自控优先级范围:0-99
2)、用户可控优先级:100-139
2、nice
显示优先级
3、renice
更改优先级
renice -n 5 pid #指定进程IP修改其优先级为5
nice -n -5 cat #指定优先级打开进程
S | 休眠状态 |
< | 优先级高 |
s | 顶级进程 |
T | stop |
N | 优先级低 |
R | running |
+ | 运行在前台 |
四、进程前后台调用
<Ctrl>+<z> | 把占用当前终端的shell进程打入后台挂起 |
bg | 把后台挂起的程序运行起来 |
fg | 把后台进程调回前台(即在当前启用) |
& | 运行进程在后台 |
jobs | 查看当前shell中在后台的所有工作 |
1、Crtl+z将进程打入后台,jobs查看后台所有进程
2、 fg调用当前进程cat到终端(+表示正在进行),之后再打入后台
3、将进程gedit调用至后台运行
但cat进程不可以,因为cat命令需要交互才能完成进程,故无法调入后台运行
vim同理
4、使用&直接将进程调入后台
5、将进程掉至前台的终端并自然退出进程,进程就会消失
6、killall -9 进程编号将会杀死进程
五、进程信息号
查看信号详细的命令使用方式:
man 7 signal
1、进程信号
可控的信号解释:
1 | 重新加载系统配置文件 |
2 | 清空内存中的进程数据 |
3 | 清空内存中的鼠标(Ctrl+\) |
9 | 强行结束进程 |
15 | 正常关闭进程 |
18 | 运行被暂停的进程 |
19 | 暂停进程(不会被阻塞) |
20 | 暂停进程(会被阻塞) |
1、信号2在操作前
2、kill -2 pid(bash的进程号)
3、kill -15 pid正常结束进程
gedit图形编辑器关闭,进程被杀掉
关闭bash进程
该bash自动关闭
在含有子进程的前提下关闭一个bash
发现没有办法使用-15正常关闭,bash进程还存在。被阻塞了
4、 kill -9 pid强制关闭,不会被系统阻塞,但对系统不够安全
2、进程信号控制工具
kill 进程信号 pid
killall 进程信号 进程名字
pkill 进程信号 进程条件
pkill --help #寻求帮助
六、systemd守护进程
1、实验环境:
两台主机,利用nm-connection-editor配置好网络连接ip,并保证sshd服务打开。
2、远程操作主机
ssh -l(login) 远程主机用户 远程主机IP
3、守护进程
守护进程是替内核分担程序管控的程序,通常pid为1。
而守护进程由内核直接管理。
4、systemctl命令
systemd-------->systemctl
systemctl是管理系统服务
服务是指在系统中开启的共享系统资源到网络中程序
服务器:安装了服务类型软件的主机
5、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 |
七、Linux系统登录审计系统
1、w
显示正在登录系统的账号
-i 显示登录来源
/var/log/wtmp
w显示主机名(在/etc/hosts下有解析的话)
w -i 显示IP
2、last
登录成功现在已经退出的
/var/log/utmp
3、lastb
试图登录但未成功的
/var/log/btmp