目录

1、程序和进程的关系

程序

进程

区别

2、查看进程-----ps  -aux

常用的参数

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

其中进程状态,常见的状态有以下几种:

3、查看进程信息--------ps  -elf

 常用的参数

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

其中僵尸进程:

4、查看动态的进程信息-----top

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

其中第一行各字段的含义如下:

其中第二行各字段的含义如下:

其中第三行各字段的含义如下:

其中第四行各字段的含义如下:

其中第五行各字段的含义如下:

top命令全屏操作界面快捷建

实验    

 结论:

5、根据特点条件查询进程PID信息-------pgrep命令

 6、以树形结构列出进程信息-------pstree命令

 7、进程的启动方式

进程的前台后台调度-------fg/bg

8、终止进程的运行------kill/killall

9、终止进程的运行 ---------pkill命令

10、计划任务管理------at命令

一次性计划任务

 11、计划任务管理----------crontab命令

设置周期性计划任务

管理crontab计划任务

crontab 任务配置的格式

时间数值的特殊表示方法

12、总结

引言:Linux系统中进程就相当于windows任务管理器,所以我们要了解进程,以及如何查看进程,同时在工作中我们也要设置周期性计划,方便我们不用重复性操作。

1、程序和进程的关系

程序

保存在硬盘、光盘等介质中的可执行代码和数据

静态保存的代码

进程

在CPU及内存中运行的程序代码

动态执行的代码

父、子进程

每个程序可以创建一个或多个进程

区别

进程是动态的,程序是静态的

程序是二进制文件,进程是程序运行的过程

有生命周期和运行状态

2、查看进程-----ps  -aux

ps命令

查看静态的进程统计信息

[root@localhost~] #ps  -aux      常用的选项组合

将以简单列表的形式显示出进程信息

常用的参数

-a :显示当前终端下的所有进程信息,包括其他用户的进程。与"x"选项结合时将显示系统中所有的进程信息。

-u :使用以用户为主的格式输出进程信息。

-x :显示当前用户在所有终端下的进程信息

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

USER:进程的用户

PID:进程的ID

%CPU:进程占用的CPU百分比

%MEM:占用内存的百分比

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

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

TTY:启动进程的终端名。不是从终端启动的进程则显示为 ?

STAT:该行程的状态:

START:该进程被触发启动时间。

TIME:该进程实际使用CPU运行的时间。

COMMAND:进程的启动命令

其中进程状态,常见的状态有以下几种:

D:不可中断的休眠状态;

R:正在运行状态;

S:处于休眠状态,可被唤醒;     +:表示当前进程运行在前台;  

T:停止状态,可能是在后台暂停或进程处于跟踪 调试状态;

Z:僵尸进程,进程已经中止,但是部分程序还在内存当中

<:表示进程运行在高优先级上

N:表示进程运行在低优先级上

3、查看进程信息--------ps  -elf

查看静态的进程统计信息

ps  -elf

 常用的参数

-e :显示系统内的所有进程信息

-l:使用长格式显示进程信息

-f:使用完整的格式显示进程信息

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

F:内核分配给进程的系统标记

S:进程的状态

UID:启动这些进程的用户

PID:进程的进程ID

PPID:父进程的进程号(如果该进程是由另一个进程启动的)

C:进程生命周期中的CPU利用率

PRI:进程的优先级(越大的数字代表越低的优先级)

NI:谦让度值用来参与决定优先级

ADDR:进程的内存地址

SZ:假如进程被换出,所需交换空间的大致大小

WCHAN :若该进程在睡眠,则显示睡眠中的系统函数名

STIME:进程启动时的系统时间

TTY:进程启动时的终端设备       pts/0255代表虚拟终端,一般是远程连接的终端; ttyl tty7代表本地控制台终端

TIME:运行进程需要的累计CPU时间

CMD:进程的启动命令

其中僵尸进程:

一个进程结束了,但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程,因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init来接管它,成为它的父进程,子进程退出后init会回收其占用的相关资源。但是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。

4、查看动态的进程信息-----top

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

PID:进程id

USER:进程所有者的用户名

PR:优先级(由内核动态调整) 用户不能调整

NI:进程谦让度值。nice值。负值表示高优先级,正值表示低优先级,用户可以自己调整

VIRT:进程使用的虚拟内存总量,单位kb

RES:进程使用的物理内存大小,单位kb

SHR:共享内存大小,单位kb

S:进程状态

%CPU:上次更新到现在的CPU时间占用百分比

%MEM:进程使用的物理内存百分比

TIME+:进程使用的CPU时间总计,单位1/100秒

COMMAND :命令名/命令行

其中第一行各字段的含义如下:

top 19:11:57    #当前系统时间

up  2:35             #系统已经运行时间

3 users               #当前登录用户

Load average  0.00, 0.01, 0.01   #系统平均负载,后面三个数字代表每1分钟,5分钟,15分钟的平均负载

其中第二行各字段的含义如下:

 Tasks:                      系统任务信息

187 total                    #进程总数

1 running                    #正在运行的进程数

186 sleeping              # 睡眠的进程数

0  stopped                  #睡眠的进程数

0 zombie                    #僵尸进程数

其中第三行各字段的含义如下:

 %Cpu(s)                 #cpu占用百分比信息

0.0 us                           #用户空间占用CPU百分比 查看CPU使用率

0.1  sy                          #内核空间占用CPU百分比 

0.0 ni                            #用户进程空间内改变过优先级的进程占用CPU百分比 

99.9 id                          #空闲CPU百分比

0.0 wa                          #等待输入输出的CPU时间百分比

0.0 hi                           #硬中断消耗时间  硬中断占用

0.0 si                           #软中断消耗时间  软中断占用

0.0 st                           #虚拟化占用

其中第四行各字段的含义如下:

Kib Mem                         #内存占用信息

3861516  total                  #物理内存总量

 2941772 free                   #空闲内存总量

442928 used                    #已使用的物理内存总量

476816 buff/cache           #用作内核缓存的内存量

其中第五行各字段的含义如下:

 Kib Swap                  #交换空间占用

4095996  total             #交换区总量

4095996  free             #空闲交换区总量

0 used                        #已使用的交换区总量

3098320 avail Mem    #缓冲的交换区总量

top命令全屏操作界面快捷建

P 键:根据CPU使用百分比大小进行排序

M 键:根据驻留内存大小进行排序

N 键:根据启动时间进行排序

c 键:切换显示命令名称和完整命令行

h 键:可以获得 top程序的在线帮助信息

k 键:根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程

数字1 键:显示CPU个数和状态

q 键:退出 top 程序

实验    

例: 需求:压力测试,查看cpu和内存的使用率

1、先用top命令查看动态进程信息,可以查看压力测试前cpu和内存的使用率

2、模拟持续输入文件,测试cpu和内存的抗压能力

3、用dd命令做压力测试后查看cpu和内存使用率

 4、cpu和内存使用率过高,无法将/etc/下的所有文件复制到/mnt/test

 查看,发现内存已被占满

 5、查看磁盘占用情况,发现/mnt/占用空间过高

6、找到问题文件并删除

7、解决问题后,再次查看cpu和内存的使用率,恢复正常

 结论:

top可以动态的查看系统进程的使用情况,方便我们查看cpu和内存的使用率,以防出现内存过大导致系统崩溃,会对我们工作造成影响,我们要找出原因,并解决问题。

5、根据特点条件查询进程PID信息-------pgrep命令

常见参数

-l :  选项可同时输出对应的进程名以及PID

-U:选项查询特定用户的进程(用户需登录)

-t:选项查询在特定终端运行的进程

例:查询以“log”显示的进程id

查询指定用的进程id

 

查询指定终端的进程id

 6、以树形结构列出进程信息-------pstree命令

pstree 命令默认情况下只显示各进程的名称

常见参数

-p:选项使用时可以同时列出对应的PID号

-U:选项可以列出对应的用户名

 -a:选项可以列出完整的命令信息

例:登录ly用户,进行编辑,root用户可以以树形结构查看进程信息

 7、进程的启动方式

手工启动

前台启动:用户输入命令,直接执行程序

后台启动:在命令行尾加入& 符号

例:

 调度启动

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

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

进程的前台后台调度-------fg/bg

Ctrl+Z组合键

将当前进程挂起,即调入后台并停止执行

jobs命令

查看处于后台的任务列表

fg命令(前台)

将后台进程恢复到前台运行,可指定任务序号

bg命令(后台)

可以将后台中暂停执行(如按 Ctrl+Z 组合键挂起)的任务恢复运行,继续在后台执行操作

8、终止进程的运行------kill/killall

Ctrl+C组合键

中断正在执行的命令

kill 、killall命令

kill 用于终止指定PID号的进程

killalll用于终止指定名称的所有进程

-9选项用于强制终止

kill 如果不加参数默认值为:-15 (正常停止一个进程)终止

-9:强制杀死一个进程 (不正规)

-1 :重新加载进程

-3 :杀死并退出进程 (友好的方式)

-19 :停止/暂停

9、终止进程的运行 ---------pkill命令

根据特定的条件终止相应的进程

格式:pkill  -9  -U "用户"

常用命令选项

-U :根据进程所属的用户名终止相应的进程

-t : 根据进程所在的终端终止相应的进程

10、计划任务管理------at命令

一次性计划任务

例:格式:at  [14:44]  [2022-04-05]

Ctrl +D 键提交任务

date 命令     查看时间

atq : 查看未执行的一次计划

atrm任务序号 :删除第几条任务

例:

 对于已经设置但还未执行(未到时间点)的计划任务,可以通过 atq 命令进行查询。但已执行过的 at 任务将不会再出现在列表中。具体操作如下:

 

 11、计划任务管理----------crontab命令

设置周期性计划任务

 按照预先设置的时间周期(分钟、小时、天.......)重复执行用户指定的命令操作

属于周期性计划任务

主要设置文件

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

系统默认的设置,位于目录:/etc/cron.*/

用户定义的设置,位于文件:/var/spool/cron/ 用户名

crond 守护进程会自动检查/etc/crontab 文件,/etc/cron.d/目录及/var/spool/cron/目录中的改变,如果发现有配置更改,它们就会被载入内存,所以当某个crontab 文件改变后并不需要重新启动crond 守护进程就可以使设置生效

管理crontab计划任务

编辑计划任务            默认为当前用户

crontab -e [-u 用户名]

查看计划任务

crontab  -l [-u 用户名]

删除计划任务

crontab  -r [-u 用户名]

crontab 任务配置的格式

字段 说明
分钟 取值为从0到59之间的任意整数
小时 取值为从0到23之间的任意整数
日期 取值为从1到31之间的任意整数
月份 取值为从1到12之间的任意整数
星期 取值为从0到7之间的任意整数,0或7代表星期日
命令 要执行的命令或程序脚本

时间数值的特殊表示方法

*   表示该范围内的任意时间

, 表示间隔的多个不连续时间点

-   表示一个连续的时间范围

/   指定间隔的时间频率

应用示例:

0  17  *  *  1-5                        周一到周五每天17:00

30  8  *  *  1,2,5                每周一、三、五的8点30分

0  8-18/2  *  *  *                     8点到18点之间每2小时

0  *  */3   *  *                           每三天

12、总结

通过上述描述,我们可以了解到查看进程的命令(ps、top、pgrep、pstree),以及程序和进程的关系和区别,进程控制分为启动进程,调度进程,终止进程,at命令设置一次性计划任务,crontab命令,设置周期性计划任务,设置计划任务可以定期备份web数据库,定期采集检测数据,find 查找5天或者更久之前的数据进行删除,这样就不会出现内存过大的情况。

原文链接:https://blog.csdn.net/weixin_56270746/article/details/123895618

最后修改:2023 年 10 月 26 日
如果觉得我的文章对你有用,请随意赞赏