Linux过程和计划任务
文章目录
- Linux过程和计划任务
-
- 1程序 介绍流程线程
-
- 1.1程序
- 1.2进程
- 1.3线程
- 1.僵尸和孤儿的过程介绍
- 2查看进程统计信息
-
- 2.查询过程中的静态信息-ps
- 2.查询过程动态信息-top
-
- 2.2.1top命令介绍
- 2.3pgrep查看过程信息
- 2.4pstree查看进程树
- 3控制进程
-
- 3.1进程前后台调度
- 3.一次性计划任务at
- image-20220712093549456
- 3.三周期性计划任务-crontab
-
- 3.3.1 管理crontab计划任务
- 3.3.2 crontab 任务配置格式
- 3.3.3使用 crontab 命令管理用户的计划任务
- 4进程的终止
-
- 4.1Kill命令 和 Killall命令
- 4.2pkill命令
- 5总结
- 5总结
1程序 介绍流程线程
1.1程序
- 可执行代码和数据保存在硬盘、光盘等介质中
- 静态保存代码
1.2进程
- 在CPU程序代码在内存中运行
- 动态执行代码
- 每个程序可以创建一个或多个进程
1.3线程
- 负责功能的运行
- 多线程可以运行多个任务
- 有三种状态
就绪:创建线程后等待cpu过来执行的时间称为就绪状态 运行:当cpu来执行的时候会变成运行状态,当cpu当执行其他线程时,它会回到就绪状态 堵塞:如果线程正在运行,需要向硬盘发送访问请求和一系列需要时间输入输出的操作,线程将进入阻塞状态,西部将转向执行其他线程。当耗时操作结束时,以前的阻塞状态线程将再次成为准备状态,单核单线程cpu一次只能执行一个线程,需要轮流执行每个线程。
1.僵尸和孤儿的过程介绍
僵尸进程 子过程退出,父过程不回收子过程,释放子过程占用的资源,子过程将成为僵尸过程。
孤儿过程一个父亲过程退出,一个或多个子过程仍在运行,因此这些子过程将成为孤儿过程,孤儿过程将被退出init并由过程收养init完成状态收集工作。
查看过程统计信息
2.查询过程中的静态信息-ps
查看静态过程统计信息
a∶ 包括其他用户在内的所有显示终端的过程。
u∶ 表示列出过程的用户。
x∶ 显示所有终端的过程。
介绍每个单词的意思
USER 启动此过程的用户账户名称 PID 该进程在系统中的数字ID数字是当前系统中唯一的 %CPU CPU占百分比 %MEM 内存占百分比 VSZ 虚拟内存(单位:KB) RSS 物理内存(单位:KB) TTY 注明该过程在哪个终端上运行。 pts远程登录终端,tty1.图像界面,tty2和tty6:字符界面,?:系统本身执行的过程 STAT 过程状态 START 启动过程的时间(何时启动) TIME 该进程占用CPU时间(启动需要多长时间) COMMAND 启动过程命令的名称 其中STAT过程的过程状态如下
D:系统保护过程(daemon)
R:正在运行(running)
S:睡眠状态(sleep)
Z:僵尸状态(zombie)
T:停止状态
优先级符号:
<:表示过程运行在高优先级上
N:表示过程运行在低优先级上
s:表示过程是控制
l:表示过程是多线程的
:表示当前流程在前台运行
2.查询过程动态信息-top
2.2.1top命令介绍
- 默认情况下,每3秒刷新一次,按s键修改刷新时间,按空间:立即刷新。
第一行介绍
19:02:20系统时间
up 32 min系统已经运行了很长时间
2usres目前登录用户数
load average:0.02 0.02 0.05系统负载,即单位时间内系统处理的任务数,后三个值分别为1分钟、5分钟和15分钟前的平均值
第二行介绍
- Tasks 总进程数
- running 正在运行的过程数
- sleeping 休眠过程数
- stopped 中止过程数
- zombie 僵硬的过程数
第三行介绍
- us——用户占用
- sy——内核占用
- ni——占用优先级调度
- id——空闲CPU,了解空闲 CPU 百分比主要取决于%id 部分
- wa—— I/O 等待占用
- hi——中断占用硬件
- si——中断占用软件
- st——虚拟化占用
第四行介绍
total 总交换空间
free 空闲内存
used 已用内存
buff/cache 物理内存和交换内存缓冲区的总和
2.2.2top常用命令
P 键∶ 根据CPU用百分比大小排序 M 键∶ 根据驻留内存的大小进行排序 N 键∶ 根据启动时间进行排序 c 键∶ 切换显示命令名称和完整命令 h 键∶ 可以获得 top在线帮助信息的程序 k 键∶根据提示输入指定的过程 PID 号并按 Enter 键终止对应的进程 q 键∶退出 top 程序 数字1 键∶ 显示CPU个数和状态
2.3pgrep查看过程信息
2.4pstree查看进程树
过程信息以树形结构列出 pstree默认情况下,命令只显示每个过程的名称, 结合以下常用参数:
执行pstree-aup"命令可以查看当前系统的过程树,包括每个过程对应的过程树PID编号、用户名、完整命令等信息。从输出结果中可以看出,systemd进程确实是Linux操作系统中所有流程的始祖
3控制进程
在服务器维护工作中,通常需要执行一些耗时和占用资源的任务(如数据备份),这些任务更适合在相对空闲时间(如夜间)进行。此时,用户需要提前安排调度,并在系统到达设定时间时自动启动和完成指定任务时指定任务。调度启动的计划任务运行,不占用用户的命令终端。 可以通过调度启动过程at、crontab设置命令at命令用于设置一次性计划任务,crontab设置周期性运行的计划任务。
3.1进程前后台调度
3.2一次性计计划任务at
具体实例
3.3周期性计划任务-crontab
- 按照预先设置的时间周期(分钟、小时、天…)重复执行用户指定的命令操作
- 属于周期性计划任务
- 主要设置文件
-
- 全局配置文件,位于文件:/etc/crontab
- 系统默认的设置,位于目录:/etc/cron.*/
- 用户定义的设置,位于文件:/var/spool/cron/用户名
3.3.1 管理crontab计划任务
默认情况下不使用-u是针对root用户,只有root用户才能对其它用户使用-u选项
- 编辑计划任务格式:crontab -e [-u 用户名
- 查案计划任务(不加-u就是查看自己的计划任务表,加-u就是指定查看某用户的计划任务表)格式:crontab -l [-u 用户名
- 删除计划任务(删除全部,若要删除某一个,需要进入到crontab -e 内部进行删除)
格式:crontab -r [-u 用户名
3.3.2 crontab 任务配置格式
字段 | 分钟 | 小时 | 日期 | 月份 | 星期 | 命令 |
---|---|---|---|---|---|---|
范围 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7(0或7代表周日) | 要执行的命令或程序脚本 |
时间数值的特殊表示方法
- *: 表示该方位内的任意时间
- ,:表示间隔的多个不连续时间点
- -:表示一个连续的时间范围
- /:指定间隔的时间频率
应用实例 $$ 0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18/2 * * * 8点到18点之间每2个小时
0 * * /3 * * 每3天 $$
3.3.3使用 crontab 命令管理用户的计划任务
设置用户的周期性计划任务列表主要通过 crontab 命令进行,结合不同的选项可以完成不同的计划任务管理操作。常用的选项如下。 -e:编辑计划任务列表。 -u:指定所管理的计划任务属于哪个用户,默认是针对当前用户(自己),一般只有 root 用户有权限使用此选项(用于编辑、删除其他用户的计划任务)。 -l:列表显示计划任务。 -r:删除计划任务列表。
设置每天早上7点50分开启sshd服务
查看计划进程
4进程的终止
Ctrl+C 组合键:结束终端正在执行的命令
4.1Kill命令 和 Killall命令
Kill 用来终止指定PID号的进程
- kill -l :查看所有选项发出的信号
- 默认不加的选项是 -15
Killall 用来终止指定名称的所有进程
选项信号 | 作用 |
---|---|
-1(HUP) | 重新加载进程 |
-9(KILL) | 终止进程 |
-15(TERM) | 正常停止进程 |
4.2pkill命令
根据特定条件终止相应的进程
常用命令选项
5总结
1、程序和进程的关系 程序时静态的,进程是动态的、是程序的运行过程
2、查看进程统计信息 静态查询 :ps -aux 、 pgrep 、pstree
动态查询:top
3、进程的启动方式
一次性计划任务----at
周期性计划任务----crontab
4、终止进程的运行 终止单个进程:kill
终止多个进程:killall
根据特定条件终止相应的进程:pkill ll命令
根据特定条件终止相应的进程
常用命令选项
[外链图片转存中…(img-f63Y0Cqz-1657610385368)]
5总结
1、程序和进程的关系 程序时静态的,进程是动态的、是程序的运行过程
2、查看进程统计信息 静态查询 :ps -aux 、 pgrep 、pstree
动态查询:top
3、进程的启动方式
一次性计划任务----at
周期性计划任务----crontab
4、终止进程的运行 终止单个进程:kill
终止多个进程:killall
根据特定条件终止相应的进程:pkill