Linux-进程

138 阅读5分钟

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)
查看当前系统的进程

具体解释

image.png

上述输出信息中,第一行为列表标题,其中各字段的含义描述如下

USER:启动该进程的用户账号的名称

PID:该进程在系统中的数字 ID 号,在当前系统中是唯一的

%CPUCPU 占用的百分比

%MEM:内存占用的百分比

VSZ:该进程使用的虚拟内存量(KB)

RSS:该进程占用的物理内存量(KB)

TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?
简说:pts 是远程登录终端 ctrl+ALT F1-F6 tty1 图像界面 26 字符界面 ? 系统本身自身执行的进程

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

image.png

第一行:任务队列信息

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选项用于强制终止