一、进程定义
1. 进程的定义:
- 程序是静态的的代码文件
- 进程是指程序运行时的形态
- 进程是程序的一个副本
- 进程是有生命周期的(准备期,运行期,中止期)
- 注:进程是正在执行的一个程序或命令,而且为运行的实体,会占据一定的系统资源。程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的方法,程序执行流是从上到下贯穿运行
2. 进程和线程
- 进程是资源调用的最小单位
- 线程是进程的最小单位
- 注:当进程是多任务时,cpu是多核心,多任务应同时被每个核心处理,每个核心处理的任务叫线程,而前述所集为多线程。同时也意味着其主机的运行速度越快。 线程的资源是共享的
3. 进程状态
进程状态 | |
R(TAKS_RUNNING) | 可执行态(running,ready) |
S(TASK_INTRRUPTABLE) | 可唤醒休眠 |
D(TASK_UNINTRRUPTABLE) | 不可唤醒休眠 |
T(TASK—STOP) | 暂停状态 |
Z(EXT_ZOMBIE) | 僵死态 |
二、进程查看命令
gnome-system-mnoitor 图形进程查看工具
1. ps 进程查看
(1) ps的三种命令风格 : Unix、BSD、GNU
- Unix风格参数,前面加单破折线,如:ps -e 显示所有进程
- BSD风格的参数,前面不加破折线,如:ps a 显示与终端相关的进程(当用户登陆系统后产生的进程都带终端)
- GNU风格的参数,双破线加长参数,如:ps -deselect 显示所有进程
例:1. Unix风格
- 1.1.ps x 与终端无关相关的进程
- 1.2.ps u 用户信息归类的查看方式
- 1.3. ps f 显示进程层级关系
- 1.4.ps o 显示指定参数,如 :pid,comm,nice,pri,pcpu,ppid,state,user,group等,(参数可进行叠加)
- 注:上述参数可进行叠加:
2.BSD风格:
- ps -e 显示所有进程
- ps -f 显示信息的完整格式
- ps -H 显示进程的层级结构
- ps -o 显示指定参数
- ps --sort= 显示排序(例子:显示进程所用到的内存用量前5的id
(2)ps ax显示信息如下:
- PID 进程id
- TTY 进程用到的终端
- STAT 进程状态
- TIME 进程占用cpu时长
- COMMAND 进程名称
(3).ps aux显示信息如下:
- USER 进程所有人
- PID 进程id
- %CPU 进程使用cpu的用量
- %MEM 进程所用到的内存用量
- VSZ 进程使用的虚拟内存大小
- RSS 进程常驻内存中的数据大小
- TTY 进程用到的终端
- STAT 进程状态
- START 进程运行时长
- TIME 进程占用cpu时长
- COMMAND进程名称
(4) 进程过滤
-
pgrep 进程过滤 -u uid 显示指定用户进程 -U user 显示指定用户进程 -t tty 显示指定终端进程 -l 显示进程名称 -a 显示进程的完整名称 -P 下时进程的子进程
(5)top 动态进程查看
1. top中的内容显示信息
- 07:40:52 系统时间
- up 54 min 运行时长
- 2 users 系统中有两个用户登录
- load average: 0.00,0.00,0.00 (1min,5min,15min)
- Tasks 275 total 任务总量
- 2 running 正在运行的任务数量
- 273 sleeping 休眠任务数量
- 0 stopped 被暂停任务数量
- 0 zombie 僵死任务数量
%Cpu | 3.7 us | 1.0 sy | 0.0 ni | 94.7 id | 0.0 wa | 0.7 hi | 0.0 si | 0.0 st |
用户空间 | 内核空间 | nice值调整时间 | 空闲时间 | 等待io时间 | 处理硬件中断时间 | 处理软件中断时间 | 被偷走的时间(vim 使用时间) |
MiB Mem | 818.6 total | 79.3 free | 532.6 used | 206.7 buff/cache |
总量 | 空闲 | 占用 | 缓存 | |
MiB Swap | 2048.0 total | 1247.1 free | 800.9 used | 146.4 avail Mem |
交换分区用量 | 总量 | 空闲 | 占用 |
2. top命令的参数
- -d 指定刷新频率
- -b 以批次方式显示
- -n 指定显示的批次数量
3. top 内部指令
-
P cpu排序 s 指定刷新频率 PR 优先级 S 程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,z=僵尸进程 M 内存排序 k 操作进程 NI nice值。负值表示高优先级,正值表示低优先级 %CPU 上次更新到现在的CPU时间占用百分比 T 累计cpu时间排序 u 查看指定用户进程 VIRT 进程使用的虚拟内存总量,单位kb
VIRT=SWAP+RES
%MEM 进程使用的物理内存百分比 l 关闭/开启uptime信息 PID 进程id RES 进程使用的、未被换出的物理内存大小,单位kb TIME+ 进程使用的CPU时间总计,单位1/100秒 t 关闭/开启cpu&task USER 进程所有者的用户名 SHR 共享内存大小,单位kb COMMAND 命令名/命令行
三、进程优先级
在进行linux系统管理时,由于其的多任务多用户操作模式,所以为了最高效的系统运行,所以对任务的重要性进行区分,
因此使用任务的优先级对任务进行重要性确定。
优先级的特征:
- 总范围:0~139
- 内核自控优先级范围:0-99
- 用户可控优先级:100-139
- 操作方式:使用nice命令(优先级范围:-20~19,数字越小,优先级越高)
输入命令:
- renice -n -17(nice值) 4320(PID) 更改优先级
- nice -n -1(nice值) cat 指定优先级打开进程
- ps ax -o pid,nice,comm | grep cat
-
参数 含义 参数 含义 S sleeping(休眠模式) N 优先级低 < 优先级高 R running(执行模式) s 顶级进程 + 正在前台shell运行 T stop(暂停模式)
四、进程前后调用
执行操作 | 含义 |
ctrl+z | 占用shell的进程打入后台挂起,stop模式 |
bg | 后台挂起的进程运行 |
fg | 后台进程调回前台 |
& | 运行进程在后台 |
jobs | 查看当前shell中在后台的所有工作 |
举例实验:以gedit命令为例子:
五、进程信号
5.1基本进程信号
1 | 重新加载系统配置文件(source) | 15 | 正常关闭进程(会被阻塞) |
2 | 清空内存中的进程数据 | 18 | 运行被暂停的进程 |
3 | 清空内存中的鼠标(ctrl+\) | 19 | 暂停进程(不会被阻塞) |
9 | 强行结束进程(不能被阻塞 | 20 | 暂停进程(会被阻塞的) |
举例实验:以kill命令为例子:
六、systemd守护进程
- 客户端ip:172.25.254.150 主机名:wetsoslinux
- 服务端ip:172.25.254.50 主机名:westos_student50
- 远程操作命令:ssh 客户端ip -l 客户端用户
6.2守护进程
作用:替内核分担程序控管的程序,通常pid为1,
systemctl命令(服务指在系统中开启的共享系统资源到网络中的程序)的用法:
start | 开启 | enable | 设定服务开机启动 | mask | 冻结服务 |
stop | 关闭 | enable --now | 设定服务开机启动并当前开启服务 | unmask | 解锁 |
status | 查看状态 | disable | 设定服务开启不其动 | set-default | 设定系统运行模式 multi-user.target |
reload | 重新加载 | list-units | 查看系统所有服务当前状态 | get-defaul | 查看系统运行模式 |
restart | 重新启动服务 | list-dependencies | 列出服务依赖性 |
七、系统中的登陆审计
- W ;显示正在登陆系统的账号(w -i:显示登陆来源/var/run/utmp)
- last :显示登陆成功且已经退出账号的历史记录,/var/log/wtmp
- lastb:显示登陆失败的账号的历史记录,(三次没有成功会消失),/var/log/btmp