目录
一、进程
1. 基本概念
程序:没有运行的代码
进程:运行起来的代码
线程:程序的副本,只复制进程的一部分的代码,可以保证完成任务即可。真正执行的是线程,而不是进程。
2. 父进程与子进程
运行开始:
父进程先启动,再启动子进程。父进程在启动子进程时还要分配资源给子进程
运行结束:
子进程先结束,父进程收回子进程的资源,父进程在结束
僵尸进程:
父进程先结束,子进程还在,子进程变为僵尸进程。
3. 静态查看进程信息
(1)ps 命令
ps 命令可以用来查看静态的进程统计信息(ps命令执行时的进程信息)
(2)选项
选项 | 含义 |
---|---|
ps -elf | |
e | 显示所有的进程信息 |
l | 长格式显示(显示详细信息) |
f | 完整格式显示进程信息 |
ps -aux | |
a | 显示终端上的所有进程,包括其他用户的进程,展示全部的进程 |
u | 列出进程的用户 |
x | 显示所有终端的进程信息 |
(3)实操
① 显示当前系统的所有进程
[root@localhost ~]# ps -elf
进程信息表每列含义
列名 | 含义 |
---|---|
F | 父进程的PID号 |
S | 进程的状态 R:运行状态 S:休眠状态 D:不可中断的休眠状态 T:停止状态 也可是后台暂停或者进程处于跟踪调试的状态 Z:僵尸进程 |
UID | 进程的启动者 |
PID | 代表进程,每个PID号是唯一的 |
PPID | 父进程的IPD号 |
C | CPU利用率,占用多少CPU |
PRI | 优先级(数字越大,优先级越低) |
NI | 谦让值,用于决定 PRI优先级的值 |
ADDR | 进程的内存地址 |
SZ | 如果进程被唤出所需要的内存大小(单位:KB) |
WCHAN | 如果进程处于休眠,则显示休眠中的系统函数名 |
STIME | 运行进程需使用CPU的累计时间 |
TTY | 进程启动时的设备 |
TIME | 进程累计的运行时间 |
CMD | 进程的启动命令 |
② 显示当前系统的所有进程
[root@localhost ~]# ps -aux
进程信息表每列含义
列名 | 含义 |
---|---|
USER | 进程启动者 |
PID | 代表进程,唯一的 |
%CPU | CPU占用率 |
%MEM | 物理内存占用率 |
VSZ | 占用的虚拟内存 |
RSS | 占用物理内存的具体大小 |
TTY | 启动进程的终端名 ? 表示本终端 |
STAT | 进程的状态 R:运行 S:休眠 s:子进程 l:多个线程 <:高优先级 N:低优先级 +:前台线程 |
START | 进程启动使用的时间 |
TIME | 进程使用CPU的时间 |
COMMAND | 进程的启动命令 |
(4)查看指定程序的进程
查看httpd 的所有进程
使用 ps -aux 命令、管道符及grep
[root@localhost ~]# ps -aux | grep httpd
树型查看httpd的所有进程
使用pstree -pu pid 命令
p:显示进程pid号
u:显示进程启动者
[root@localhost ~]# pstree -pu 1789
4. 动态查看进程信息
(1)top 命令
top 命令可以用来查看动态的进程统计信息(实时查看)
按 q 键退出
(2)实操
[root@localhost ~]# top
pid号 进程启动者 优先级 谦让值 进程使用的虚拟内存大小 进程使用的物理内存大小 状态 cpu使用率 物理内存使用率 进程启动命令
top 命令还可以向ps命令一样以文本查看
top -b -n 1
-b:以文本方式查看
-n:查看次数
[root@localhost ~]# top -b -n 1
(3)表中部分含义
%Cpu 行
us:用户占用cpu的百分比
sy:内核占用cpu的百分比
ni:优先级高的占用百分比
id:cpu的空闲百分比
wa:磁盘的读写性能
hi:1分钟内cpu的使用率
si:5分钟内cpu的使用率
st:15分钟内cpu的使用率
5. 查找指定进程并杀死
(1)pgrep 命令
pgrep 命令可用于查找进程的ID/PID,它可以根据进程的名字或者其他属性查找对应的PID号
经常与 kill 命令联用
选项:
选项 | 作用 |
---|---|
-a | 显示PID号和启动命令 |
-c | 仅显示匹配进程的数量,而不显示进程名和PID |
-f | 显示进程名及其参数 |
-l | 显示PID和进程名 |
-n | 仅显示最新的匹配进程 |
-u | 仅显示匹配进程的所有者 |
(2)kill 命令
当执行kill 命令时,实际是向内核传递了一个信号,内核收到信号后,由内核来执行
当kill 命令杀不死进程时,可以使用 kill -9 强制杀死
(3)实操
查找 httpd 的进程号并将其杀死
[root@localhost ~]# pgrep -l httpd
3227 httpd
[root@localhost ~]# kill 3227
[root@localhost ~]# pgrep -l httpd
[root@localhost ~]# systemctl status httpd
注:
failed 的状态有两种含义
① 启动失败
② 被终止的情况
6. 查看后台进程状态信息
(1)jobs 命令
选项 | 作用 |
---|---|
-l | 显示后台进程的PID |
-p | 显示所有后台进程的进程组ID |
-n | 仅显示最近后台进程 |
-r | 仅显示正在运行的后台进程 |
-s | 显示已经停止的后台进程 |
(2)实操
二、计划任务管理
crontab 任务配置文件位置
全局配置文件位置: /etc/crontab
系统默认文件位置: /etc/cron.*/
用户自定义设置文件位置:/var/spool/cron/用户名
1. 管理crontab计划任务
选项 | 作用 |
---|---|
-e | 编辑计划任务 |
-l | 查看计划任务 |
-r | 删除所有的计划任务 |
[-u 用户名] | 针对指定用户进行的计划任务 |
2. 编辑计划任务
[root@localhost ~]# crontab -e [-u 用户名]
* * * * * mkdir /data
分 时 日 月 周 任务(动作)
(1)范围
分:0 - 59
时:0 - 23
日:1 - 31
月:1 - 12
周:0 - 7( 0 和 7 都表示星期日)
(2)规则
符号 | 含义 | 示例 |
---|---|---|
* | 表示该范围内的任意时间 | |
, | 表示间隔的多个不连续时间点 | 2,4,6 * * * * 每小时的第2分钟、第4分钟、第6分钟分别执行一次任务 |
- | 表示一个连续的时间范围 | * 1-5 * * * 每天的1到5点执行任务 |
/ | 表示时间间隔的时间频率 | */5 * * * * 每5分钟执行一次任务 |