博观而约取,厚积而薄发。这篇文章主要讲述Linux的进程和计划任务管理相关的知识,希望能为你提供帮助。
@[TOC]
一、进程和程序的关系
程序
- 保存在硬盘、光盘等介质中的可执行的代码和数据
- 文件中静态保存的代码
- 在CPU及内存中运行的程序代码
- 动态执行的代码
- 父(例如init)、子进程
- 每个程序可以创建一个或多个进程
文章图片
文章图片
选项 | 作用 |
---|---|
a | 显示终端上的所有进程,包括其他用户的进程 |
u | 表示列出进程的用户 |
x | 表示所有终端的进程 |
文章图片
名称 | 解释 |
---|---|
USER | 进程的用户 |
PID | 进程的ID |
%CPU | 进程占用的cpu百分比 |
%MEM | 占用内存的百分比 |
VSZ | 进程占用的虚拟内存量(KB) |
RSS | 进程占用的物理内存量(KB) |
TTY | 启动进程的终端名,不是从终端启动的进程则显示为 ? |
STAT | 该进程的状态 |
START | 该进程被触发启动时间 |
TIME | 该进程实际使用cpu运行时间 |
COMMAND | 进程的启动命令 |
文章图片
文章图片
1.2、ps -elf
文章图片 文章图片 |
选项 | 用处 |
---|---|---|
-e | 显示系统内的所有进程信息 | |
-l | 使用长格式显示进程信息 | |
-f | 使用完整格式显示 | |
-a | 显示说有进程pid | |
-T | 查看线程信息 |
文章图片 |
名称 | 解释 |
---|---|---|
F | 内核分配给进程的系统标记 | |
==S== | ==进程的状态== | |
==UID== | ==启动这些进程的用户== | |
==PID== | ==进程的进程ID== | |
PPID | 父进程的进程号(如果该进程是由另一个进程启动的) | |
==C== | ==进程生命周期中的CPU利用率== | |
PRI | 进程的优先级(越大的数字代表优先级越低) | |
NI | 谦让度值用来参与决定优先级 | |
ADDR | 进程的内存地址/td> | |
SZ | 假如进程被换出,所需交换空间的大致大小 | |
WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 | |
STIME | 进程启动时的系统时间 | |
TTY | 进程启动时的终端设备 | |
TIME | 运行进程需要的累计CPU时间 | |
==CMD== | ==进程的启动命令== |
2.查看动态的进程信息TOP
文章图片
文章图片
2.1、进程动态行
文章图片
第一行:任务队列信息
20:58:13 | 系统时间 |
up 18:01 | 系统已运行时长 |
2 users | 当前登录用户数 |
load average: 0.00, 0.01, 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 | 物理内存和交换内存的缓冲区总和 |
total | 总交换空间 |
free | 空闲交换空间 |
used | 已用交换空间 |
avail Mem | 可用物理空间 |
文章图片
进程信息区名词解释
PID | 进程ID |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | 谦让值。负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存大小,单位kb |
RES | 进程使用的物理内存大小,单位kb |
SHR | 共享内存大小,单位kb |
S | 进程状态 |
%CPU | 上次更新时间到现在的CPU占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 命令名/命令行 |
P | 根据CPU使用百分比大小进行排序 |
M | 根据驻留内存大小进行排序 |
N | 根据启动时间进行排序 |
c | 切换显示命令名称和完整命令行 |
h | 可以获得top程序的在线帮助信息 |
k | 根据提示输入指定进程的PID号并按Enter键终止对应的进程 |
q | 退出top程序 |
数字 1 | 显示CPU个数和状态 |
文章图片
文章图片
文章图片
4、查看进程树pstree
文章图片 文章图片 |
|
---|---|
选项 | 作用 |
-a | 显示完整信息 |
-u | 列出对应用户名 |
-p | 列出对应PID号 |
文章图片
二、进程的管理 1、启动进程的方式 1.1 手工启动
- 前台启动:输入命令,直接执行程序
文章图片
- 后台启动:命令结尾加&
,在后台执行
文章图片
- 使用 ==at== 命令,设置一次性计划任务
- 使用 ==crontab== 命令,设置周期性计划任务
- 将当前进程挂起,即调入后台并停止执行
- jobs -l
- 查看处于后台的任务列表
文章图片
- 将后台进程恢复到前台运行,可指定任务序号
文章图片
3.2 kill、killall命令
- kill终止指定PID号的进程
- killall终止指定名称相关的所有进程
- -9选项用于强制终止
文章图片
选项 | 作用 |
-U | 根据进程所属的用户名终止相应进程 |
-T | 根据进程所在的终端终止相应进程 |
文章图片
三、计划任务管理 1、一次性计划任务:at
文章图片
文章图片
==不跟年月日就是默认当天==
文章图片
2、周期性任务设置:crontab
- 按照预先设置的时间周期(分钟、小时、天、月、周)重复执行用户指定的命令操作
- 属于周期性计划任务
- 主要设置文件
- 全局配置文件,位于文件:/etc/crontab
- 系统默认的设置,位于目录:/etc/cron.*/
- 用户自定义的设置,位于文件:/var/spool/cron/用户名
2.1 管理crontab计划任务
文章图片
文章图片
文章图片
2.2 任务配置的格式
文章图片
字段 | 说明 |
---|---|
分钟 | 取值为0~59之间的任意整数 |
小时 | 取值为0~23之间的任意整数 |
日期 | 取值为1~31之间的任意整数 |
月份 | 取值为1~12之间的任意整数 |
星期 | 取值为0~7之间的任意整数,0或7代表星期日 |
命令 | 要执行的命令或程序脚本 |
* | 表示该范围内的任意时间 |
, | 表示间隔的多个不连续时间点 |
- | 表示一个连续的时间范围 |
/ | 指定间隔的时间频率 |
推荐阅读
- #yyds干货盘点#Java ASM系列((097)生成Control Flow Graph)
- #yyds干货盘点#Redis之Stream
- LINUX文件系统及日志分析
- 删除目录下三天以前的所有的目录下的文件
- #yyds干货盘点#?Java深层系列「技术盲区」让我们一起完全吃透针对于时间和日期相关的API指南
- 学习使用调用shell函数
- 第十一章-IO流#yyds干货盘点#
- 如何激活从get_post_field()读取的内容()
- 如何添加图片到WordPress而不用上传到后端()