m-zhuang

导航

Linux 进程和计划任务管理

一、进程

1. 基本概念

程序:没有运行的代码

进程:运行起来的代码

线程:程序的副本,只复制进程的一部分的代码,可以保证完成任务即可。真正执行的是线程,而不是进程。

2. 父进程与子进程

运行开始:

父进程先启动,再启动子进程。父进程在启动子进程时还要分配资源给子进程

运行结束:

子进程先结束,父进程收回子进程的资源,父进程在结束

僵尸进程:

父进程先结束,子进程还在,子进程变为僵尸进程。

3. 静态查看进程信息

(1)ps 命令

ps 命令可以用来查看静态的进程统计信息(ps命令执行时的进程信息)

(2)选项

选项 含义
ps -elf
e 显示所有的进程信息
l 长格式显示(显示详细信息)
f 完整格式显示进程信息
ps -aux
a 显示终端上的所有进程,包括其他用户的进程,展示全部的进程
u 列出进程的用户
x 显示所有终端的进程信息

(3)实操

① 显示当前系统的所有进程

[root@localhost ~]# ps -elf

进程信息表每列含义

列名 含义
F 父进程的PID号
S 进程的状态
R:运行状态
S:休眠状态
D:不可中断的休眠状态
T:停止状态 也可是后台暂停或者进程处于跟踪调试的状态
Z:僵尸进程
UID 进程的启动者
PID 代表进程,每个PID号是唯一的
PPID 父进程的IPD号
C CPU利用率,占用多少CPU
PRI 优先级(数字越大,优先级越低)
NI 谦让值,用于决定 PRI优先级的值
ADDR 进程的内存地址
SZ 如果进程被唤出所需要的内存大小(单位:KB)
WCHAN 如果进程处于休眠,则显示休眠中的系统函数名
STIME 运行进程需使用CPU的累计时间
TTY 进程启动时的设备
TIME 进程累计的运行时间
CMD 进程的启动命令

② 显示当前系统的所有进程

[root@localhost ~]# ps -aux

进程信息表每列含义

列名 含义
USER 进程启动者
PID 代表进程,唯一的
%CPU CPU占用率
%MEM 物理内存占用率
VSZ 占用的虚拟内存
RSS 占用物理内存的具体大小
TTY 启动进程的终端名
? 表示本终端
STAT 进程的状态
R:运行
S:休眠
s:子进程
l:多个线程
<:高优先级
N:低优先级
+:前台线程
START 进程启动使用的时间
TIME 进程使用CPU的时间
COMMAND 进程的启动命令

(4)查看指定程序的进程

查看httpd 的所有进程

使用 ps -aux 命令、管道符及grep

[root@localhost ~]# ps -aux | grep httpd

树型查看httpd的所有进程

使用pstree -pu pid 命令

p:显示进程pid号

u:显示进程启动者

[root@localhost ~]# pstree -pu 1789

4. 动态查看进程信息

(1)top 命令

top 命令可以用来查看动态的进程统计信息(实时查看)

按 q 键退出

(2)实操

[root@localhost ~]# top

pid号 进程启动者 优先级 谦让值 进程使用的虚拟内存大小 进程使用的物理内存大小 状态 cpu使用率 物理内存使用率 进程启动命令

top 命令还可以向ps命令一样以文本查看

top -b -n 1

-b:以文本方式查看

-n:查看次数

[root@localhost ~]# top -b -n 1

(3)表中部分含义

%Cpu 行

us:用户占用cpu的百分比

sy:内核占用cpu的百分比

ni:优先级高的占用百分比

id:cpu的空闲百分比

wa:磁盘的读写性能

hi:1分钟内cpu的使用率

si:5分钟内cpu的使用率

st:15分钟内cpu的使用率

5. 查找指定进程并杀死

(1)pgrep 命令

pgrep 命令可用于查找进程的ID/PID,它可以根据进程的名字或者其他属性查找对应的PID号

经常与 kill 命令联用

选项:

选项 作用
-a 显示PID号和启动命令
-c 仅显示匹配进程的数量,而不显示进程名和PID
-f 显示进程名及其参数
-l 显示PID和进程名
-n 仅显示最新的匹配进程
-u 仅显示匹配进程的所有者

(2)kill 命令

当执行kill 命令时,实际是向内核传递了一个信号,内核收到信号后,由内核来执行

当kill 命令杀不死进程时,可以使用 kill -9 强制杀死

(3)实操

查找 httpd 的进程号并将其杀死

[root@localhost ~]# pgrep -l httpd
3227 httpd
[root@localhost ~]# kill 3227
[root@localhost ~]# pgrep -l httpd
[root@localhost ~]# systemctl status httpd 

注:

failed 的状态有两种含义
① 启动失败

② 被终止的情况

6. 查看后台进程状态信息

(1)jobs 命令

选项 作用
-l 显示后台进程的PID
-p 显示所有后台进程的进程组ID
-n 仅显示最近后台进程
-r 仅显示正在运行的后台进程
-s 显示已经停止的后台进程

(2)实操

二、计划任务管理

crontab 任务配置文件位置

全局配置文件位置: /etc/crontab

系统默认文件位置: /etc/cron.*/

用户自定义设置文件位置:/var/spool/cron/用户名

1. 管理crontab计划任务

选项 作用
-e 编辑计划任务
-l 查看计划任务
-r 删除所有的计划任务
[-u 用户名] 针对指定用户进行的计划任务

2. 编辑计划任务

[root@localhost ~]# crontab -e [-u 用户名]
	*  *  * *  *  mkdir /data
	分 时 日 月 周  任务(动作)

(1)范围

分:0 - 59

时:0 - 23

日:1 - 31

月:1 - 12

周:0 - 7( 0 和 7 都表示星期日)

(2)规则

符号 含义 示例
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点 2,4,6 * * * *
每小时的第2分钟、第4分钟、第6分钟分别执行一次任务
- 表示一个连续的时间范围 * 1-5 * * *
每天的1到5点执行任务
/ 表示时间间隔的时间频率 */5 * * * *
每5分钟执行一次任务

posted on 2023-05-11 23:17  m_zhuang  阅读(66)  评论(0编辑  收藏  举报