当前位置:   article > 正文

Linux系统管理:进程和计划任务管理_linux 任务管理

linux 任务管理

目录

一、理论

1.查看进程

2.控制进程

3.计划任务管理

二、实验

1.进程的前后台调度-停1个作业

2.进程的前后台调度-停2个作业

3.编写crontab任务


一、理论

1.查看进程

(1)ps命令

         ① ps命令为查看静态的进程统计信息(Processes Statistic),它是Linux系统中最为常用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照。通过不同的命令选项,可以有选择性地查看进程信息。

表1 ps命令选项

选项功能
a显示当前终端下的所有进程信息,包括其他用户的进程。与“x"选项结合时将显示系统中所有的进程信息
u使用以用户为主的格式输出进程信息
x显示当前用户在所有终端下的进程信息
-e显示系统内的所有进程信息
-l使用长(Long)格式显示进程信息
-f使用完整的(Full)格式显示进程信息

        ② 简单列表的形式显示进程信息

            执行命令 : ps -aux

表2 ps -aux命令执行结果各字段含义

字段含义
USER启动该进程的用户账户名称

PID

该进程在系统中的数字ID号,在当前系统中是唯一的
    TTY        表面该进程在哪个终端上运行。”?“表示未知或不需要终端
STAT

显示了进程当前的状态,如:

S   休眠

R   运行

D   不可中断休眠

Z   僵死

T   停止

<   高优先级

N   低优先级

s   父进程

+   前台进程

START启动该进程的时间
TIME该进程占用CPU的时间
COMMAND启动该进程命令的名称
%CPUCPU占用的百分比
%MEM内存占用的百分比
VSZ占用虚拟内存(swap)空间的大小
RSS占用常驻内存(物理内存)的大小

          ③ 长格式显示系统中的进程信息

            执行命令 :ps -elf

       表3 ps -elf命令执行结果各字段含义

字段含义
F内核分配给进程的系统标记
S进程的状态
UID启动这些进程的用户
PID进程的进程ID
PPID父进程的进程号(如果该进程是由另一个进程启动的)
C
 
进程生命周期中的CPU利用率
PRI进程的优先级(越大的数字代表越低的优先级)
 
NI
 
谦让度值用来参与决定优先级。
ADDR进程的内存地址
SZ假如进程被换出,所需交换空间的大致大小
WCHAN
 
若该进程在睡眠,则显示睡眠中的系统函数名
STIME进程启动时的系统时间
TTY进程启动时的终端设备
TIME
 
运行进程需要的累计CPU时间
CMD进程的启动命令

(2)top命令

        top命令为查看进程动态信息,它将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒刷新一次,其作用基本类似于Windows系统中的”任务管理器“。

         top命令输出了很多参数,真正的服务器负载情况我们要综合其他参数一起看,运行结果可以分为两部分:

             第一部分是前5行,是系统整体的统计信息;
             第二部分是第8行开始的进程信息。

 

           第一行是任务队列信息

top - 13:59:12 up  4:49,  3 users,  load average: 0.00, 0.01, 0.05

【1】top:当前时间

【2】up:机器运行了多长时间

【3】users:当前登录用户数

【4】load average:系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。


             ② 第二行为进程信息

Tasks: 170 total,   1 running, 168 sleeping,   1 stopped,   0 zombie

【1】Tasks:当前有多少进程

【2】running:正在运行的进程数

【3】sleeping:正在休眠的进程数

【4】stopped:停止的进程数

【5】zombie:僵尸进程数

             ③ 第三行为CPU的信息

%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

【1】us:用户空间占CPU的百分比(像shell程序、各种语言的编译器、各种应用、web服务器和各种桌面应用都算是运行在用户地址空间的进程,这些程序如果不是处于idle状态,那么绝大多数的CPU时间都是运行在用户态)

【2】sy: 内核空间占CPU的百分比(所有进程要使用的系统资源都是由Linux内核处理的,对于操作系统的设计来说,消耗在内核态的时间应该是越少越好,在实践中有一类典型的情况会使sy变大,那就是大量的IO操作,因此在调查IO相关的问题时需要着重关注它)

【3】ni:用户进程空间改变过优先级(ni是nice的缩写,可以通过nice值调整进程用户态的优先级,这里显示的ni表示调整过nice值的进程消耗掉的CPU时间,如果系统中没有进程被调整过nice值,那么ni就显示为0)

【4】id: 空闲CPU占用率

【5】wa: 等待输入输出的CPU时间百分比(和CPU的处理速度相比,磁盘IO操作是非常慢的,有很多这样的操作,比如,CPU在启动一个磁盘读写操作后,需要等待磁盘读写操作的结果。在磁盘读写操作完成前,CPU只能处于空闲状态。Linux系统在计算系统平均负载时会把CPU等待IO操作的时间也计算进去,所以在我们看到系统平均负载过高时,可以通过wa来判断系统的性能瓶颈是不是过多的IO操作造成的)

【6】hi: 硬中断占用百分比(硬中断是硬盘、网卡等硬件设备发送给CPU的中断消息,当CPU收到中断消息后需要进行适当的处理(消耗CPU时间)。)

【7】si:软中断占用百分比(软中断是由程序发出的中断,最终也会执行相应的处理程序,消耗CPU时间)

【8】st:steal time

             ④ 第四行为内存的信息

KiB Mem :   999696 total,    77132 free,   544444 used,   378120 buff/cache

【1】total:物理内存总量

【2】free:空闲内存量

【3】used:使用的内存量

【4】buffer/cache:用作内核缓存的内存量

             ⑤ 第五行为交换空间的信息

KiB Swap:  3145724 total,  2883856 free,   261868 used.   238284 avail Mem 

【1】total:交换区内存总量

【2】free:空闲交换区总量

【3】used:使用的交换区总量

【4】avail Mem:可以测量可以分配和使用的内存量

             ⑥ 进程信息区各列字段

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND

表3 进程信息区各列字段

字段

含义
PID进程id
USER进程所有者的用户名
PR优先级 --系统优先级
NI谦让度值。负值表示高优先级,正值表示低优先级 --人为设置的优先级
VIRT进程使用的虚拟内存总量,单位kb
RES进程使用的物理内存大小,单位kb
SHR共享内存大小,单位kb
S进程状态
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND命令名/命令行

           ⑦ top命令常用选项

选项功能

-d  

指定每两次屏幕信息刷新之间的时间间隔,如希望每秒刷新一次,则使用:top -d 1

-p  

通过指定PID来仅仅监控某个进程的状态

-S  

指定累计模式

-s   

使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险

-i   

使top不显示任何闲置或者僵死的进程

-c   

显示整个命令行而不只是显示命令名

              top交互式命令

                   默认进入top时,各进程是按照CPU的占用量来排序的

                【1】敲top后,按键盘数字“1”可以监控每个逻辑CPU的状况:

                【2】敲top后,输入u,然后输入用户名,则可以查看相应的用户进程;

               【3】敲top后,top命令默认以K为单位显示内存大小,我们可以通过大写字母E来切换内存信息区域的显示单位,如下按一下E切换到MB

再按一下E切换到GB:

                【4】敲top后,输入h进入top命令的帮助文档,了解更多关于top的用法。

(3)pgrep命令

         pgrep命令为查询进程信息,它用来查询特定进程信息的专用工具。使用pgrep命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性查询特定进程的PID号。

表4 ps -aux命令执行结果各字段含义

选项功能
-a显示进程名和PID
-c仅显示匹配进程的数量,而不显示进程名和PID
-f匹配进程名及其参数
-l

显示进程名而非PID

-n仅显示最新的匹配进程
-u仅显示匹配进程的所有者

         ②  pgrep命令查看httpd进程

 (4)pstree命令

       ① pstree命令为查看进程树,可以输出Linux系统中各进程的树形结构,更加直观地判断出各进程之间的相互关系(父、子进程)。

表5 pstree命令选项

选项功能
-a显示每个程序的完整指令,包含路径,参数或是常驻服务的标示
-c不适用精简表示法
-G使用VT100终端机的列绘图字符
-h列出树状图时,特别表明限制执行的程序
-H<程序识别码>此参数的效果和指定-h参数类型,但特别表明指定的程序
-l采用长列格式显示树状图
-n用程序识别码排序。预设是以程序名称来排序
-p显示进程id
-u显示进程所属用户
-U使用UTF-8的列绘图字符
-V显示版本信息

            ②  pstree -p命令查看进程

            ③ pstree -up命令查看进程所属用户

 

2.控制进程

(1)启动进程

     ①  手工启动进程

           手动启动可以分为前台启动和后台启动。

           进程在前台运行时,用户必须等到该进程执行结束并退出以后才能继续输入其他命令,大多数的命令操作都是在前台启动运行。

            启动后台进程需要使用”&“操作符,将”&“操作符放在要执行命令的最后面,进程启动后会直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作。

     ②   调度启动进程

            调度启动的计划任务进程均在后台运行,不会占用用户的命令终端。进程的调度启动可以通过at\crontab命令进行设置,其中at命令用于设置一次性(如12:15时重启网络服务)计划任务,crontab用于设置周期性运行(如每周五17:30备份数据库)的计划任务。

(2)改变进程的运行方式

      ①  挂起当前的进程

           Ctrl+Z组合键:将当前进程挂起,即调入后台并停止执行。

      ②  查看后台的进程

            jobs命令可以用于列出这些后台作业的状态信息。

表6 jobs命令选项

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

      ③  将后台的进程恢复运行

            使用bg(BackGround,后台)命令,可以将后台中暂停执行(如按Ctrl+Z组合键挂起)的任务恢复运行,继续在后台执行操作;而使用fg命令(ForeGround,前台),可以将后台任务重新恢复到前台运行。

            除非后台中的任务只有一个,否则bg和fg命令都需要指定后台进程的任务编号作为参数。

(3)终止进程执行

       ①  使用kill命令终止进程

             通过kill命令终止进程时,需要使用进程的PID号作为参数。kill -9 为强行终止进程。

       ②  使用killall命令终止进程

             使用killall命令可以通过进程名来终止进程,当需要结束系统中多个相同名称的进程时,使用killall命令更加方便,效率更高。

       ③  使用pkill命令终止进程

             使用pkill命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程,大部分选项与pgrep命令基本类似。

3.计划任务管理

(1)crontab周期性任务设置

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

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

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

(2)使用crontab命令管理用户的计划任务

         ① 设置用户的周期性计划任务列表主要通过crontab命令进行,结合不同的选项可以完成不同的计划任务管理操作。

表7 crontab命令常用选项

选项功能
-e编辑计划任务列表
-u

指定所管理的计划任务属于哪个用户,默认时针对当前用户(自己),一般只有root用户有权限使用此选项(用于编辑、删除其他用户的计划任务)

-l列表显示计划任务
-r删除计划任务列表

         ② crontab计划任务的配置格式

表8 crontab命令常用选项

分钟小时日期月份星期
*****

         ③ crontab计划任务的配置格式

表9 crontab计划任务的配置格式

项目说明
分钟取值从0-59的任意整数
小时取值从0-23的任意整数
日期取值从1-31的任意整数(日期在该月份中必须有效)
月份取值从1-12的任意整数
星期取值从0-7的任意整数,0或7代表星期日
命令可以是普通的命令,也可以是自己编写的程序脚本

          ➃ 符号与数字构成表达式

表10 符号与数字构成表达式

符号功能举例
*表示取值范围中的任意时间* * * * *表示任意时间
-表示一个连续的时间范围1-4表示1、2、3、4
表示一个间隔的不连续范围3,4,6,8
/用来指定间隔频率日期字段的*/3表示每隔3天

二、实验

1.进程的前后台调度-停1个作业

(1)Ctrl+Z组合键挂起当前进程

(2)jobs命令查看后台进程

(3)kill命令终止进程

 (4)jobs命令查看后台进程

2.进程的前后台调度-停2个作业

(1)Ctrl+Z组合键挂起当前进程

(2)jobs命令查看后台进程

(3)pgrep命令查看进程信息

(4)kill命令终止进程

3.编写crontab任务

(1)每天上午9点执行钟执行ls命令

(2)每天7点-11点第30分钟执行ls命令

(3)每年6月9日6:30执行ls命令

(4)每4个月、每5天、每20分钟、每天8点和每周二执行ls命令

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/273288?site
推荐阅读
相关标签
  

闽ICP备14008679号