在上一期,我们为大家分享了一些Linux字符处理的相关知识,具体详情可以点击传送门查看:【誉天红帽入门指南】第八期:字符处理。
本期我们继续为大家带来 RHEL 8.0 的知识分享——进程管理。
实验概述:
Linux是一种动态系统,能够适应不断变化的计算需求。Linux计算需求的表现是以进程的通用抽象为中心的。进程可以是短期的(从命令行执行的一个命令),也可以是长期的(一种网络服务)。因此,对进程及其调度进行一般管理就显得极为重要。
1、进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态
程序:二进制文件,静态/bin/date, /usr/sbin/httpd,/usr/sbin/sshd, /usr/local/nginx/sbin/nginx
进程: 是程序运行的过程,动态,有生命周期及运行状态。
1、使用ps静态查看进程,掌握并查看
• PID,PPID
• 当前的进程状态
• 内存的分配情况
• CPU和已花费的实际时间
• 用户UID,它决定进程的特权
USER:运行进程的用户
PID:进程ID
%CPU:CPU占用率
%MEM:内存占用率
VSZ:占用虚拟内存
RSS:占用实际内存 驻留内存
TTY:进程运行的终端
STAT:进程状态 man ps (/STATE)
R 运行
S 可中断睡眠 Sleep
D 不可中断睡眠
T 停止的进程
Z 僵尸进程
X 死掉的进程
Ss s进程的领导者,父进程
S< <优先级较高的进程
SN N优先级较低的进程
R+ +表示是前台的进程组
Sl 以线程的方式运行
START: 进程的启动时间
TIME: 进程占用CPU的总时间
COMMAND: 进程文件,进程名
1.1 自定义显示字段
ps axo USER ,PID,COMMAND 查看进程的用户和pid
2、使用top动态查看进程
1、列出系统支持的所有信号
常用信号
编号 信号名
1) SIGHUP 重新加载配置
2) SIGINT 键盘中断^C
3) SIGQUIT 键盘退出
9) SIGKILL 强制终止
15) SIGTERM 终止(正常结束),缺省信号
18) SIGCONT 继续
19) SIGSTOP 停止
20)SIGTSTP 暂停^Z
2、使用kill 来给vim进程发送信号,强制结束
每个CPU(或CPU核心)在一个时间点上只能处理一个进程,通过时间片技术,Linux实际能够运行的进程(和线程数)可以超
出实际可用的CPU及核心数量。Linux内核进程调度程序将多个进程在CPU核心上快速切换,从而给用户多个进程在同时运行的印象
1、查看进程的nice级别
(1)使用top查看nice级别
NI:实际nice级别
PR:将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到
(2)使用ps查看nice级别
[root@localhost~]# ps axo pid,command,nice --sort=-nice
nice值越高:表示优先级越低,例如+19,该进程容易将CPU使用量让给其他进程。
nice值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
2.使用renice修改进程优先级
作业控制是一个命令行功能,允许一个shell 实例来运行和管理多个命令。如果没有作业控制,父进程fork()一个子进程后,将sleeping,直到子进程退出。
使用作业控制,可以选择性暂停,恢复,以及异步运行命令,让 shell 可以在子进程运行期间返回接受其他命令。
1、使用火狐访问 http://baidu.com,后面加上&符号,将 firefox 放到后台运行。
2、查看后台正在运行的工作。
3、把后台正在运行的firefox,放到前台运行。
(%后为工作号,图中为[]内容,工作号随着打开工作依次累加。)