文档中心 > 117数据 > Linux文件进程管理

Linux文件进程管理

最近更新时间:2024-07-09 18:00:51

【一】进程概述

进程是正在运行的程序的实例,代表一个具有独立功能的程序及其数据集的一次执行。它是操作系统动态执行的基本单元,在传统操作系统中,进程既是资源分配的基本单位,也是执行的基本单位。

一个程序可以创建多个进程,进程是由内核定义的抽象实体,并为其分配执行所需的系统资源。从内核角度看,进程由用户内存空间和一系列内核数据结构组成。用户内存空间包含程序代码和所使用的变量,而内核数据结构则用于维护进程的状态信息。进程在内核数据结构中的记录包括各种标识号(IDS)、虚拟内存表、打开文件的描述符表、信号处理信息、资源使用及限制、当前工作目录等大量信息。进程的状态分为五种,如表所示:

状态 说明
运行态 进程占用处理器,正在运行
就绪态 进程具备运行条件,等待系统分配处理器
阻塞态 进程不具备运行条件,等待某事件完成后再运行
新建态 进程刚被创建,尚未进入就绪队列 
终止态  进程完成任务或出现不可恢复错误而终止

【二】进程的类型

在Linux中,进程一般分为交互进程、批处理进程和监控进程三类,如表所示:

进程类型名称 说明
交互进程 与用户交互频繁,需要等待键盘和鼠标操作。接收输入后需快速响应,否则用户会感到系统迟钝。
批处理进程  不需与用户交互,常在后台运行,调度程序常对其怠慢。
监控进程 独立于控制终端,周期性执行任务或等待事件发生。大多数Linux服务器由守护进程实现,如ftp服务器。

交互进程是由Shell启动,可以在前台或后台运行。批处理进程与终端无关,是一组程序序列。监控进程又称守护进程,在后台运行,不受终端控制,用于执行特定系统任务。

【三】查看进程

在Linux系统下查看进程的常用命令有三个,各自功能不同,适用于不同场景。以下是详细介绍。

①ps 命令

ps命令是最常用的进程查看命令。通过执行ps命令可以查看当前运行的进程状态及资源占用情况,但ps命令显示的是瞬时状态,不是连续动态的。

ps命令选项参数值有6个,如表所示:

选项 说明
-a 显示一个终端的所有进程,除了会话引线
-u 显示当前用户进程及内存的使用情况
-x 显示没有控制终端的进程
-l 长格式显示详细信息
-e 显示所有进程
-f 格式显示,包括命令行

执行ps命令后,会显示进程列表,如图所示:

进程列表字段说明如表所示:

字段 说明
USER 产生该进程的用户
PID 进程ID
%CPU 进程占用CPU资源的百分比
%MEM 进程占用物理内存的百分比 
VSZ 进程占用虚拟内存的大小(KB)
RSS 进程占用实际物理内存的大小(KB)
TTY  进程运行的终端
STAT 进程状态
START 进程的启动时间
TIME 进程占用CPU的运算时间
COMMAND 产生此进程的命令名

STAT——进程状态取值说明,如表所示:

字段 说明
D 不可唤醒的睡眠状态,通常用于I/O操作
R 正在运行
S 可被唤醒的睡眠状态
T 停止状态,可能是暂停或除错状态
W 内存交换状态
X 崩溃的进程
Z 僵尸进程
< 高优先级
N 低优先级
L 被锁定在内存中
s 包含子进程
l 多线程
+ 位于后台

【例】列出所有在内存中运行的进程。

如果系统目前有许多正在运行的进程,可以用 more 命令逐步查看。在命令行模式下输入 "ps aux | more" 命令,具体操作如图所示:

②top 命令

top命令以动态方式查看进程状态,可通过按键不断刷新状态,独占前台直到终止。top命令提供实时CPU状态监控,可按CPU使用率、内存使用率、执行时间排序。

该语法中,top命令选项参数值有八个,如表所示:

选项 说明
-d 改变显示的更新速度
-q 无延迟显示速度
-c 切换显示模式,显示执行档名称或完整路径
-S 累积模式,累积已完成或消失的子进程CPU时间
-s 安全模式,取消交互式指令
-i 不显示任何闲置或无用的进程
-n 更新次数,完成后退出top
-b 批次模式

【例】显示系统进程并每3秒更新一次信息。

在命令行模式中,通过输入 top 命令可以显示进程信息,并按照设定的秒数更新信息。通过设置“-d”参数可以实现这个功能,输入的完整命令为“top -d 3”,要退出 top 进程查看,可以按 Ctrl+C 键,具体操作如图所示:

③pstree 命令

pstree命令以树形结构显示程序和进程之间的关系,适用于查看进程树之间的关系。

该语法中,pstree命令选项参数值有五个,如表所示:

选项 说明
-a 显示启动每个进程的完整指令,包括路径和参数
-c 不使用精简法显示进程信息
-p 显示进程的PID
-u 显示进程对应的用户名称
-n 根据进程PID号排序输出,默认以程序名排序

【例】显示进程树并显示进程号。

在命令行模式中,输入“pstree -p”命令,其中“-p”参数用于显示进程的PID值。结果会以树状结构展示,可以清晰地看到进程之间的父子关系。具体操作如图所示:

【四】定时调度任务进程

crond是Linux下的守护进程,用于周期性地执行任务或等待事件,类似Windows的计划任务。操作系统安装后默认安装并自动启动crond进程。crond每分钟检查是否有任务执行,如果有则自动执行。

crontab是Linux系统的定时执行工具,可以在无人干预下运行作业,通过crond进程提供服务,crond每分钟检查任务执行情况。

crontab配置文件所在位置如表所示:

路径 说明
/var/spool/cron/ 存放用户的crontab任务,每个任务以登录名命名
/etc/crontab 存放系统管理员创建并维护的crontab任务
 /etc/cron.d/  存放任何要执行的crontab任务

crontab配置文件如图所示:

crontab时间参数说明如表所示:

时间 说明
minute 一小时中的第几分钟(0~59)
hour 一天中的第几小时(0~23)

如果您的问题还未解决,可以 提交工单寻求帮助。

免费试用30+款云服务产品 即刻开始您的上云之旅
免费试用