> 文章列表 > Linux操作基础(进程和计划任务管理)

Linux操作基础(进程和计划任务管理)

Linux操作基础(进程和计划任务管理)

文章目录

  • 一 、程序和进程的关系
    • 1.1程序
    • 1.2进程
    • 1.3进程和线程的关系
  • 二 、查看进程的命令
    • 2.1 ps命令
      • 2.11 ps aux
      • 2.12 ps -elf
    • 2.3 top 命令
    • 2.4 pgrep命令
    • 2.5 进程的启动方式
      • 2.51 手工启动
      • 2.52 调度启用
        • 进程的前后台调度
        • 终止进程的运行
    • 2.6 kill命令
  • 三 、计划任务管理
    • 3.1使用at命令,设置一次性计划任务
    • 3.2 使用crontab命令,设置周期性计划任务
  • 总结

一 、程序和进程的关系

1.1程序

  • 程序 保存在硬盘、光盘等戒指中的代码或数据
  • 文件中静态保存的代码

1.2进程

  • 再cpu及内存中运行的程序代码
  • 动态执行的代码
  • 父子进程
    每个程序可以创建一个或多个进程

1.3进程和线程的关系

进程:资源分配的最小单位。
线程:程序执行的最小单位。
总的来说:进程有独立的地址空间,线程没有单独的地址空间(同一进程内的线程共享进程的地址空间)。

二 、查看进程的命令

2.1 ps命令

ps命令是静态查询进程命令

2.11 ps aux

Linux操作基础(进程和计划任务管理)

命令 作用
a 显示终端上的所有进程,包括其他用户的所有进程
u 表示列出进程的用户
x 显示所有终端的进程

如果直接输入ps命令则是将只显示当前用户会话中打开的进程
Linux操作基础(进程和计划任务管理)

命令 作用
A 显示终端上的所有进程,包括其他用户的所有进程
U 表示列出进程的用户
X 显示所有终端的进程
USER 进程的用户
PID 进程号
%CPU 进程所占cpu的使用率
%MEN 进程所占内存的使用率
VSZ 进程所使用的虚拟内存
RSS 进程所占物理内存大小
TTY 启动进程的终端名,如果不是终端启动的就是?
STAT 运行进程的状态 d:不可中断的休眠状态 r:正在运行状态 s:处于休眠状态,可以唤醒 t:停止状态, z:僵尸进程,进程已经终止,但是部分程序还在内存
START 进程被触发启动的时间
TIME 进程实际使用cpu运行的时间
COMMAND 进程的启动命令
  • 僵尸进程:一个进程结束的时候如果该进程的父进程先结束了,就不会变成僵尸进程,相反就会变成僵尸进程(父进程没有回收机制)

2.12 ps -elf

Linux操作基础(进程和计划任务管理)

命令 作用
e 显示系统内所有进程
l 长格式显示
f 使用完整的形式显示进程

第一行每个表示的意思

名称 作用
F 内核分配给进程的系统标记
S 进程的状态
UID 启动这些进程的用户
PID 进程的进程号
PPID 进程的父进程号
C 进程中的CPU占用率
PRI 进程的优先级,数字越大优先级越低
NI 谦让度值用来参与决定优先级
ADDR 进程的内存地址
sz 假如进程被换出,所需交换空间的大致大小
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
STIME 进程启动时的系统时间
TTY 进程启动时的终端设备
TIME 运行进程需要的累计CPU时间
CMD 进程的启动命令

通过ps命令来查询CPU或内存的使用效率
ps aux --sort -%cpu | head -10 按cpu降序顺序,-为降序,+为升序,p和%意思一样
Linux操作基础(进程和计划任务管理)

ps aux --sort +pmem | head -n 10 按内存升序排列
Linux操作基础(进程和计划任务管理)

2.3 top 命令

top命令是查询动态的进程信息排名
Linux操作基础(进程和计划任务管理)

第一行:任务队列信息

名称 作用
15:13:55 系统时间
up 59 min 系统已运行时长
2 users 当前登录用户数
load average: 0.00,0.01,0.05 平均负载,即单位时间内系统处理的任务数,后面三个数值 分别为1分钟、5分钟、15分钟前到现在的平均值

负载均衡还可以通过w、uptime等命令来查看
Linux操作基础(进程和计划任务管理)

第二行: 系统进程信息

名称 作用
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 可用物理空间

top常用命令:

命令 作用
P键 根据CPU使用百分比大小进行排序
M键 根据驻留内存大小进行排序
N键 根据启动时间进行排序
c键 切换显示命令名称和完整命令行
h键 可以获得top程序的在线帮助信息
q键 退出top程序
数字1键 显示CPU个数和状态
  • 按shift+m,对查询到的进程按内存占比大小排序

Linux操作基础(进程和计划任务管理)

  • 查看当前进程

Linux操作基础(进程和计划任务管理)

2.4 pgrep命令

根据特定的条件去查询进程信息
pgrep + [选项]

命令 作用
只显示pid号
-l 显示进程名
-U 指定特定用户
-t 指定终端

Linux操作基础(进程和计划任务管理)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZOMJ0GM-1681225798144)(null)]

查询信息

查询 命令
内存 free-m 、vmstat、 atop
cpu top、vmstat、atop、sar
IO iostat、iotop、vmstat、atop、sar
网卡流量 ifconfig、iftop、atop
磁盘信息 df、du、atop
进程 ps、top、htop、atop、pidstat

2.5 进程的启动方式

进程启动方式为手工启动和调度启动

2.51 手工启动

  • 前台启动:用户输入命令,直接执行的程序
  • 后台启动:在命令行尾加入“&”符号

使用cp命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时较长,因此可结合“&”符号将复制操作放到后台运行,以便用户可以继续执行其他命令操作
Linux操作基础(进程和计划任务管理)

2.52 调度启用

进程的前后台调度

CTRL+z:将当前进程挂起,即调到后台停止执行
jobs:查看处于后台的任务列表
fg:将后台的进程恢复到前台运行,可以指定任务号

终止进程的运行

CTRL+c:中断正在执行的命令

2.6 kill命令

kill:用于终止指定pid号的进程
kill -s:指定信号名
killall:用于终止指定名称相关的所有进程
kill -9:用于强制执行

我们经常用kill命令区杀死一个进程,但是有时候会出现不成功的现象,这时就需要用到kill -9,我们平时用的kill默认为kill -15
kill -15 代表的信号为SIGTERM,这是告诉你进程要关闭,让你自行停止运行并退出。
kill -9 代表的信号是SIGKILL,表示进程被终止,需要立即退出。
Linux操作基础(进程和计划任务管理)
2.61 pkill 命令
根据特定的条件终止相应的进程
-U:用户名
-t:终端名
Linux操作基础(进程和计划任务管理)

三 、计划任务管理

3.1使用at命令,设置一次性计划任务

at [HH:MM]  [yyyy-mm-dd]        #不带年月日为今天执行
atq                           	#查看未执行的一次性计划任务
atrm  1                         #删除第1条任务

Linux操作基础(进程和计划任务管理)

3.2 使用crontab命令,设置周期性计划任务

crontab命令

  • 按照预先设置的时间周期(分钟、小时、日、月、周)重复执行用户指定的命令操作
  • 属于周期性计划任务
  • 服务脚本名称:/etc/init.d/crond

Linux操作基础(进程和计划任务管理)

  • 时间数值的特殊标识方法:
特殊字符 说明
*(星号) 代表任何时刻都接受的意思。
,(逗号) 代表分隔时段的意思
-(减号) 代表一段时间范围内
/n(斜杠) n代表数字,代表每隔n单位间隔的意思

范围:
Linux操作基础(进程和计划任务管理)

编辑计划任务
crontab -e [-u 用户名]            
​
查看计划任务
crontab -l [-u 用户名]         
​
删除计划任务
crontab -r [-u 用户名] 

演示,从周一到周五每天17:00执行ls命令)
Linux操作基础(进程和计划任务管理)
Linux操作基础(进程和计划任务管理)

Linux操作基础(进程和计划任务管理)

总结

1、首先学习了程序和进程的关系
2、学习了ps静态和top动态查询进程以及pgrep指定特定的条件查询
3、终止进程的方式以及kill命令
4、计划任务管理at和crontab命令