Linux进程和计划任务管理
程序和进程的关系
程序
1.保存在硬盘、关盘等介质中的可执行代码和数据
2.静态保存的代码
3.二进制的文件、静态的
进程
1.在CPU及内存中运行的程序代码
2.动态执行的代码
3.父、子进程( 每个程序可以创建一个或多个进程 )
4.是程序运行的过程,动态的 有生命周期及运行状态
线程
1.是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单位
2.一个进程至少有一个执行线程
3.线程也被称为轻量级进程
4.线程是进程内部的一部分
程序、进程、线程 的关系
线程包含在进程中,是进程中实际运作单位,也是操作系统中能够独立运行的基本单位,也称作轻量进程
一个进程中可以并发多个线程,每条线程可以并行执行不同任务,而我们在任务管理器中
看到的一个个进程则由我们下载的应用程序所产生的
当然一个应用程序也可以包含多个进程
基础命令及解释
1.查看进程--ps 命令
查看静态的进程统计信息
常用选项:
a 显示终端上的所有进程,包括其它用户的进程。
u 表示列出进程的用户。
x 显示所有终端的进程。
直接执行不带任何选项的ps命令时,将只显示当前用户会话中打开的进程
基本格式:
ps aux #基本格式
ps aux | wc -l #结合管道符号查询具体的数量(需要-1)
查看当前系统的进程
具体解释
上述输出信息中,第一行为列表标题,其中各字段的含义描述如下
USER:启动该进程的用户账号的名称
PID:该进程在系统中的数字 ID 号,在当前系统中是唯一的
%CPU:CPU 占用的百分比
%MEM:内存占用的百分比
VSZ:该进程使用的虚拟内存量(KB)
RSS:该进程占用的物理内存量(KB)
TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?
简说:pts 是远程登录终端 ctrl+ALT F1-F6 tty1 图像界面 2 和 6 字符界面 ? 系统本身自身执行的进程
STAT:该进程的状态(D:不可中断的休眠状态:R:正在运行状态;S:处于休眠状态,可被唤醒;
T:停止状态,可能是在后台暂停或进程处于跟踪调试状态: Z:僵尸进程,进程已经中止,但是部分程序还在内存当中)
D:系统守护进程
T:调式、程序执行一般停止
R :该程序目前正在运作,或者是可被运作
S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。
T :该程序目前正在侦测或者是停止了
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (僵尸) 程序的状态D 不可中断状态
它们含意如下:
<: 表示进程运行在高优先级上
N: 表示进程运行在低优先级上
L: 表示进程有页面锁定在内存中
s: 表示进程是控制进程
l: 表示进程是多线程的
+: 表示当前进程运行在前台
D:系统守护进程
T 调式、程序执行一般停止
START:启动该进程的时间
TIME:该进程占用的 CPU 时间
COMMAND:启动该进程的命令的名称
2.ps -elf 命令— 查看静态的进程统计信息
-e 显示系统内的所有进程信息
-l 使用长格式显示进程信息
-f 使用完整的格式显示进程信息
查看当前系统进程(比ps aux显示的信息多一些)
4.top命令—动态查看进程信息
top常用命令:
P键 根据CPU使用百分比大小进行排序
M键 根据驻留内存大小进行排序
N键 根据启动时间进行排序
c键 切换显示命令名称和完整命令行
h键 可以获得top程序的在线帮助信息
q键 退出top程序
数字1键 显示CPU个数和状态
对查询到的进程按内存占比大小排序,top命令后按shift+m
查看当前进程 top -H
第一行:任务队列信息
19:11:05 系统时间
up 1:03 系统已运行时长
2 users 当前登录用户数
load average: 0.00,0.01,0.05
平均负载,即单位时间内系统处理的任务数,后面三个数值 分别为1分钟、5分钟、15分钟前到现在的平均值
第二行: 系统进程信息
Tasks 总进程数
running 正在运行的进程数
sleeping 休眠的进程数
stopped 中止的进程数
zombie 僵死的进程数
第三行: CPU占用信息
us 用户占用
sy 内核占用
ni 优先级调度占用
id 空闲CPU,要了解空闲的CPU百分比,主要看%id部分
wa I/o等待占用
hi 硬件中断占用
si 软件中断占用
st 虚拟化占用
第四行:内存占用信息
total 总空闲内存
free 空闲内存
used 己用内存
lbuff/cache 物理内存和交换内存的缓冲区总和
第五行:交换空间(swap)占用信息
total 总交换内存
free 空闲交换内存
used 已用交换内存
avail Mem 可用物理空间
pgrep命令— 根据特定条件查询进程PID信息
-l 显示进程名
-U 指定特定用户
-t 指定终端
pstree命令—查看进程树
-A 各进程树之间的连接以ASCII字符来连接
-u 各进程树之间的连接以Unicode字符来连接,在某些终端界面下可能会有错误
-p 同时列出每个进程的PID
-u 同时列出每个进程的所属账号名
kill 、killall命令
kill用于终止指定PID号的进程
killall用于终止指定名称相关的所有进程
-9选项用于强制终止