进程和计划任务管理
Posted lyaeq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程和计划任务管理相关的知识,希望对你有一定的参考价值。
一、进程
1.程序和进程的关系
程序:
保存在硬盘、光盘等介质中的可执行代码和数据
文件中静态保存的代码
进程:
在CPU及内存中运行的程序代码
动态执行的代码
父、子进程
每个程序可以创建个或多个进程
2.查看进程
1.静态查询PS
查看静态的进程统计信息
ps aux
显示终端上的所有进程,包括其它用户的进程
u:表示列出进程的用户
x:显示所有终端的进程
3.列表的名词解释
名词 | 解释 |
USER | 进程的用户 |
PID | 进程的ID |
%CPU | 进程占用的CPU百分比 |
%MEM | 占用内存的百分比 |
VSZ | 该进程使用的虚拟内存量(KB) |
RSS | 该进程占用的物理内存量(KB) |
TTY | 启动进程的终端名。不是从终端启动的进程则显示为? |
STAT | 该进程的状态 |
START | 该进程被触发启动时间 |
TIME | 该进程实际使用CPU运行的时间 |
COMMAND | 进程的启动命令 |
4.STAT的几种常用名词
名词 | 解释 |
D | 不可中断的休眠状态 |
R | 正在运行状态 |
S | 处于休眠状态,可被唤醒 |
T | 停止状态,可能是在后台暂停或进程处于跟踪调试状态 |
Z | 僵尸进程,进程已经中止,但是部分程序还在内存当中 |
备注解释:僵尸进程
一个进程结束了,但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程,因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init来接管它, 成为它的父进程,子进程退出后init会回收其占用的相关资源
但是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵进程
PS -eIf
-e: 显示系统内的所有进程信息
-l: 使用长格式显示进程信息
-f: 使用完整的格式显示进程信息
5.列表的名词解释
名词 | 解释 |
F | 内核分配给进程的系统标记 |
S | 进程的状态 |
UID | 启动这些进程的用户 |
PID | 进程的进程ID |
PPID | 父进程的进程号(如果该进程是由另一个进程启动的) |
C | 进程生命周期中的CPU利用率 |
PRI | 进程的优先级(越大的数字代表越低的优先级) |
NI | 谦让度值用来参与决定优先级 |
ADDR | 进程的内存地址 |
SZ | 假如进程被换出,所需交换空间的大致大小 |
WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
STIME | 进程启动时的系统时间 |
TTY | 进程启动时的终端设备 |
TIME | 运行进程需要的累计CPU时间 |
CMD | 进程的启动命令 |
6.动态查询top
7.名词解释
第一行是任务队列信息
名词 | 解释 |
12:29:40 | 系统时间 |
up 7:38 | 系统已运行时长 |
2 users | 当前登录用户数 |
load average : 0.00 0.02 0.05 | 系统负载,即单位时间内系统处理的任务数,后面三个数值分别为1分钟、5分钟、15分钟前到现在的平均值 |
第二行为进程信息
名词 | 解释 |
150 total | 总进程数150 |
1 running | 1个正在运行的进程 |
149 sleeping | 149个休眠的进程数 |
0 stopped | 0个中止的进程数 |
0 zombie | 0个僵尸的进程数 |
第三行为CPU的信息
名词 | 解释 |
us | 用户占用 |
sy | 内核占用 |
ni | 优先级调度占用 |
id | 空闲CPU,要了解空闲的CPU百分比,主要看 %id 部分 |
wa | I/O等待占用 |
hi | 硬件中断占用 |
si | 软件中断占用 |
st | 虚拟化占用 |
第四行内存的信息
名词 | 解释 |
total | 总内存空间 |
free | 空闲内存 |
used | 已用内存 |
buff/cache | 物理内存和交换内存的缓冲区总和 |
第五行交换空间的信息
名词 | 解释 |
total | 总交换空间 |
free | 空闲交换空间 |
used | 已用交换空间 |
avail Mem | 可用物理空间 |
进程信息区个列解释
名词 | 解释 |
PRD | 进程id |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | 谦让度值。负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb |
RES | 进程使用的物理内存大小,单位kb |
SHR | 共享内存大小,单位kb |
S | 进程状态 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 命令名/命令行 |
top的常用命令
名词 | 解释 |
P | 根据CPU使用百分比大小进行排序 |
M | 根据驻留内存大小进行排序 |
N | 根据启动时间进行排序 |
c | 切换显示命令名称和完整命令行 |
h | 可以获得top程序的在线帮助信息 |
k | 根据提示输入指定进程的PID号并按Enter键终止对应的进程 |
q | 退出top程序 |
数字1 | 显示CPU个数和状态 |
8. tty终端
Centos7系统,tty1表示图形界面,tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切换
pts说明是用远程工具连接的,比如xshell,后面的数字代表登录的时间顺序,越小证明登录的越早
查看线层 top -H ps -T
9.查看进程信息 pgrep
pgrep命令
根据特定条件查询进程PID信息
1. 格式
[root@cheng0307 ~]# pgrep "log" #默认只输出PID号
281 xfs-log/sda5
493 xfs-log/sda1
2.选项
-l :显示进程名
-u:指定特定用户
-t:指定终端
3.各选项的基本用法
4.pstree查看进程树
作用:以树形结构列出进程信息
1.格式
[root@cheng0307 ~]# pstree
2.选项
选项 | 代表的意思 |
-A | 各进程树之间的连接以ASCII字符来连接 |
-U | 各进程树之间的连接以Unicode字符来连接,在某些终端界面下可能会有错误 |
-P | 同时列出每个进程的PID |
-u | 同时列出每个进程的所属账号名称 |
3.各选项的基本用法
4.以树形结构查看指定用户zhangshan的进程
二、控制进程
进程的启动方式分为:手工启动和调度启动
1.手工启动
前台启动:用户输入命令,直接执行的程序;
后台启动:在命令行尾加入“&”符号
格式:[root@cheng0307 ~]# mv /tmp/CentOS-6.5-x86_64-bin-DVD1.iso /date/ &
2.进程的前后台调度(Ctrl + Z 组合键、jobs命令和fg命令)
Ctrl + Z 组合键:将当前进程挂起,即调入后台并停止执行
3.jobs命令
[ -l ] :显示PID号
查看处于后台的任务列表
4.fg命令
将后台进程恢复到前台运行,可指定任务序号
5.终止程序的运行(ctrl +c组合键、kill 和killall命令)
Ctrl + C组合键 :中断正在执行的命令;
6.kill 、killall命令
kill用于终止指定PID号的进程
klll用于终止指定名称相关的所有进程
-9选项用于强制终止
7.终止程序的运行(pkill命令)
pkill命令:根据特定条件终止相应的进程
常用的选项:
-U:根据进程所属的用户名终止相应进程;
-t:根据进程所在的终端终止相应进程。
实例:在 xshell中连接两次虚拟机,一个切换到普通用户,另一个在root模式下执行pkill 命令查看结果。
三、计划任务
1.使用at命令,设置一吃行计划任务
作用:一次性计划任务。
1. 格式(创建完成后使用Ctrl + D提交)
at [HH:MM] [yyyy-mm-dd] #不带年月日为今天执行
atq #查看未执行的一次性计划任务
atrm 1 #删除第一条任务
2.在2021年4月22日 19:20执行重启命令,并查看
3.查看当前未执行的一次性任务,并删除
4.使用crontab命令,设置周期性计划任务
crontab介绍
按照预先设置的时间周期(分钟、小时、天、月、周)重复执行用户指定的命令操作;
属于周期性计划任务;
主要设置文件:
◆全局配置文件,位于文件: /etc/crontab
◆系统默认的设置,位于目录: /etc/cron.*/
◆用户定义的设置,位于文件: /var/spool/cron/用户名
5.管理crontab计划任务
命令格式
1.编辑计划任务
crontab -e [-u 用户名] #-u缺省时默认是针对当前用户
2.查看计划任务
crontab -l [-u 用户名]
3.删除计划任务
crontab -r [-u 用户名】
6.命令格式详解
默认情况下,任何用户只要不被列入/etc/cron.deny当中,那么它就可以直接执行[ crontab -e ]去编辑自己的例行性命令。执行过后会进入vi的编辑界面,任何以一个任务一行来编辑,编辑完成之后输入【:wq】并保存后退出vi即可。每项任务的格式都具有六个字段,这六个字段的意义如上图所示。
代表意义 | 分钟 | 小时 | 日期 | 月份 | 周 | 命令 |
数字范围 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | 需要执行的命令 |
周的数字为0或7时,都代表【星期天】的意思,还有下面这些特殊字符
特殊字符 | 代表意义 |
*(星号) | 代表任何时刻都接受的意思。 |
,(逗号) | 代表分隔时段的意思 |
- (减号) | 代表一段时间范围内 |
/n (斜杠) | n代表数字,代表每隔 n 单位间隔的意思 |
实例:1月和6月的每个周六从上午8点到下午5点的时间内,每个20分钟执行一次 ls -l ,然后查看并删除改任务。
实例2:每周一早上7:50自动清空FTP服务器"var/ftp/pub” 中数据
以上是关于进程和计划任务管理的主要内容,如果未能解决你的问题,请参考以下文章