321监视进程 1.ps( process status)命令 语法:ps[选项 功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。根据 选项不同,可列出所有或部分进程。无选项时只列出从当前终端上启动的进程或当前用户的 进程。ps命令选项见附录1中表1-1。 2. pstree( process status tree)命令 语法: pstree I选项 功能:以树状图显示进程。用ASCI字符显示树状结构,清楚地表达进程间的相互关系。 如果不指定进程识别码或用户名称,则会把系统启动时的第一个进程视为基层,并显示之后 的所有进程。若指定用户名称,便会以隶属该用户的第一个进程当作基层,然后显示该用户 的所有进程。 street命令选项及其功能见表3-8。 3.top命令 语法:top选项 功能:top命令提供了对系统处理器实时的状态监视,显示系统中活跃的进程列表,可 以按CPU、内存以及进程的执行时间对进程进行排序,通常会全屏显示,而且会随着进程状 态的变化不断更新。可以通过按键来不断刷新当前状态,如果在前台执行该命令,它将独占 前台,直到用户终止该程序为止,另外,可以通过交互式的命令进行相应的操作 注意 top命令是Lnux下常用的系统性能分析工具,能够实时显示系统中各个进程的資源占用情况。 实例31使用p命令 第1步:在终端窗口执行op命令,如图3-29所示。 top-22: 31: 55 up 9 min, I user, load average: 0.50, 0.32, 0.21 asks: 106 total. 2 running, 103 sleeping. 0 stopped. 1 zombie pu(s):0.03us.0.73sy.0.0ni,99.3%id,0.0%Wa.0.0hi,0.03s1,0.0st r74520k total. 492332k used. 282188k free 28960k buffers Swap: 80S208k total Ok used. 803208k free, 308064k cached 2467 root 50292m12m6952S0.31.60:14.33Xorg 2714 root 150101m17m11mS0.32.30:02.95 gnome- termina1 2792 root 5021681008792R0.30.10:01.07top 1502044636544s0.00.10:00.56init 000s0.00.00:00.00 migration/0 3419000s0.00.00:00.00 ksoftirgd/0 RT0000s0.00.00:00,00 watchdog/0 000S0.00,00:00,00 图3-29执行top命令 前5行是统计信息区,显示了系统整体的统计信息。第1行的信息说明见表3-10。 表3-10第1行的信息
3.2.1 监视进程 1.ps(process status)命令 语法:ps [选项] 功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。根据 选项不同,可列出所有或部分进程。无选项时只列出从当前终端上启动的进程或当前用户的 进程。ps命令选项见附录1中表1-1。 2.pstree(process status tree)命令 语法:pstree [选项] 功能:以树状图显示进程。用ASCII字符显示树状结构,清楚地表达进程间的相互关系。 如果不指定进程识别码或用户名称,则会把系统启动时的第一个进程视为基层,并显示之后 的所有进程。若指定用户名称,便会以隶属该用户的第一个进程当作基层,然后显示该用户 的所有进程。pstree命令选项及其功能见表3-8。 3.top命令 语法:top [选项] 功能:top命令提供了对系统处理器实时的状态监视,显示系统中活跃的进程列表,可 以按CPU、内存以及进程的执行时间对进程进行排序,通常会全屏显示,而且会随着进程状 态的变化不断更新。可以通过按键来不断刷新当前状态,如果在前台执行该命令,它将独占 前台,直到用户终止该程序为止,另外,可以通过交互式的命令进行相应的操作。 注意: top 命令是 Linux 下常用的系统性能分析工具,能够实时显示系统中各个进程的资源占用情况。 实例 3-12 使用 top 命令 第1步:在终端窗口执行top命令,如图3-29所示。 图3-29 执行top命令 前5行是统计信息区,显示了系统整体的统计信息。第1行的信息说明见表3-10。 表 3-10 第 1 行的信息
信息 说明 22:31:55 当前的时间 min 系统运行的时间 I user 当前登录的用户数 load average:0.50,032,021系统负载,即任务队列的平均长度,三个数值分别为1分钟、5分钟、 15分钟前到现在的平均值 第2行的信息说明见表3-11。 表3-11第2行的信息 信息 信息 说明 Tasks: 106 total 进程总数 停止的进程数 2 正在运行的进程数 僵尸进程数 103 sleeping 睡眠的进程数 第3行的信息说明见表3-12。 表3-12第3行的信息 信息 说明 信息 说明 Cpu(s): 0.0%us 用户空间占用CPU百分比 993%id 空闲CPU百分比 0.7%sy 内核空间占用CPU百分比 00%wa等待输入输出的CPU时间百分比 0.0%ni 用户进程空间内改变过优先 级的进程占用CPU百分比 第4、5行的信息说明见表3-13 表3-13第4、5行的信息 信息 说明 信息 Mem: 774520k total 物理内存总量 Swap: 803208k total 交换区总量 492332k used 使用的物理内存总量 Ok used 使用的交换区总量 282188k free 空闲内存总量 803208k free 空闲交换区总量 23960k buffers 用作内核缓存的内存量 308064k cached 缓冲的交换区总量 统计信息区的下方是进程信息区,显示了各个进程的详细信息。首先来认识一下各列的 含义。进程信息区的进程信息说明见表3-14 表3-14进程信息
信息 说明 22:31:55 当前的时间 up 9 min 系统运行的时间 1 user 当前登录的用户数 load average: 0.50, 0.32, 0.21 系统负载,即任务队列的平均长度,三个数值分别为 1 分钟、5 分钟、 15 分钟前到现在的平均值 第2行的信息说明见表3-11。 表 3-11 第 2 行的信息 信息 说明 信息 说明 Tasks: 106 total 进程总数 0 stopped 停止的进程数 2 running 正在运行的进程数 1 zombie 僵尸进程数 103 sleeping 睡眠的进程数 第3行的信息说明见表3-12。 表 3-12 第 3 行的信息 信息 说明 信息 说明 Cpu(s): 0.0% us 用户空间占用CPU百分比 99.3% id 空闲CPU百分比 0.7% sy 内核空间占用CPU百分比 0.0% wa 等待输入输出的CPU时间百分比 0.0% ni 用户进程空间内改变过优先 级的进程占用CPU百分比 第4、5行的信息说明见表3-13。 表 3-13 第 4、5 行的信息 信息 说明 信息 说明 Mem: 774520k total 物理内存总量 Swap: 803208k total 交换区总量 492332k used 使用的物理内存总量 0k used 使用的交换区总量 282188k free 空闲内存总量 803208k free 空闲交换区总量 23960k buffers 用作内核缓存的内存量 308064k cached 缓冲的交换区总量 统计信息区的下方是进程信息区,显示了各个进程的详细信息。首先来认识一下各列的 含义。进程信息区的进程信息说明见表3-14。 表 3-14 进程信息
进程id USER 进程所有者的用户名 PR 优先级 e值,负值表示高优先级,正值表示低优先级 VIRT 进程使用的虚拟内存总量,默认单位是KB。ⅤIRI=SwAP+RES 进程使用的、未被换出的物理内存大小,默认单位是KB。RES=CODE+DATA SHR 共享内存大小,默认单位是KB 进程状态,D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪停止;z=僵尸进程 %CPU 上次更新到现在的CPU时间占用百分比 %MEM 进程使用的物理内存百分比 TIME+ 进程使用的CPU时间总计,单位M100秒 COMMAND 命令名 下面是图3-29的进程信息区中未列出的列名 PPID 父进程id UID 程所有者的用户id GROUP 进程所有者的组名 TTY 启动进程的终端名。不是从终端启动的进程则显示为 P 最后使用的CPU,仅在多CPU环境下有意义 TIME 进程使用的CPU时间总计,单位是秒 SWAP 进程使用的虚拟内存中,被换出的大小,默认单位是KB CODE 可执行代码占用的物理内存大小,默认单位是KB DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,默认单位是KB FLT 页面错误次数 nDT 最后一次写入到现在,被修改过的页面数 WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 任务标志
列 含义 PID 进程id USER 进程所有者的用户名 PR 优先级 NI nice值,负值表示高优先级,正值表示低优先级 VIRT 进程使用的虚拟内存总量,默认单位是KB。VIRT=SWAP+RES RES 进程使用的、未被换出的物理内存大小,默认单位是KB。RES=CODE+DATA SHR 共享内存大小,默认单位是KB S 进程状态,D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程 %CPU 上次更新到现在的CPU时间占用百分比 %MEM 进程使用的物理内存百分比 TIME+ 进程使用的CPU时间总计,单位1/100秒 COMMAND 命令名 下面是图3-29的进程信息区中未列出的列名 PPID 父进程id UID 进程所有者的用户id GROUP 进程所有者的组名 TTY 启动进程的终端名。不是从终端启动的进程则显示为 P 最后使用的CPU,仅在多CPU环境下有意义 TIME 进程使用的CPU时间总计,单位是秒 SWAP 进程使用的虚拟内存中,被换出的大小,默认单位是KB CODE 可执行代码占用的物理内存大小,默认单位是KB DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,默认单位是KB nFLT 页面错误次数 nDRT 最后一次写入到现在,被修改过的页面数 WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 Flags 任务标志
第2步:更改进程信息区显示的内容 通过f键可以选择显示的内容,在图3-29中,按f键之后会显示列的列表,如图3-30所示 按a~z键可以显示或隐藏对应的列,然后按回车键确定。 第3步:学习top的交互命令 3.22使用kl命令控制进程 kt命令 语法:kl[选项]PD 功能:命令用来中止一个进程。向指定的进程发送信号或终止进程。预设信号为 SIGTERM(15),可终止指定的进程。如果仍无法终止该进程,可以使用 SIGKILL(9)信 号尝试强制终止进程。进程或作业号可利用ps命令或jobs命令查看。kl命令的各选项及其功 能见表3-16 实例3-13使用k命令 323进程的优先权 nice命令 iAiE: nice [-n ADJUST][--adjustment= ADJUST][-helpl[--version)[command [ arg.11 功能:nice命令可以调整程序运行的优先级,让使用者在执行程序时,指定一个优先级 称为nice值( ADJUST),范围从-20(最高优先级)到19(最低优先级)共40个等级,数值越 小优先级越高,数值越大优先级越低,默认 ADJUST是10。只有root有权使用负值。一般使 用者但只能往低优先级调整。如果nice指令没加上 command参数,那么会显示目前的执行的 等级。如果调整后的程序运行优先级高于-20,那么就以优先级-20来运行命令,如果调整后 的程序运行优先级低于19,则就以优先级19来运行命令。如果nce命令没有指定优先级的调 整值,那么就以缺省值10来调整程序运行优先级,既在当前程序运行优先级基础之上増加10 实例3-14使用nice命令
第2步:更改进程信息区显示的内容 通过f键可以选择显示的内容,在图3-29中,按f键之后会显示列的列表,如图3-30所示, 按a~z键可以显示或隐藏对应的列,然后按回车键确定。 第3步:学习top的交互命令 3.2.2 使用 kill 命令控制进程 kill命令 语法:kill [选项] PID 功能:命令用来中止一个进程。向指定的进程发送信号或终止进程。预设信号为 SIGTERM(15),可终止指定的进程。如果仍无法终止该进程,可以使用SIGKILL(9)信 号尝试强制终止进程。进程或作业号可利用ps命令或jobs命令查看。kill命令的各选项及其功 能见表3-16。 实例 3-13 使用 kill 命令 3.2.3 进程的优先权 nice命令 语法:nice [-n ADJUST] [--adjustment= ADJUST] [--help] [--version] [command [arg...]] 功能:nice命令可以调整程序运行的优先级,让使用者在执行程序时,指定一个优先级, 称为nice值(ADJUST),范围从-20(最高优先级)到19(最低优先级)共40个等级,数值越 小优先级越高,数值越大优先级越低,默认ADJUST是10。只有 root有权使用负值。一般使 用者但只能往低优先级调整。如果nice指令没加上command参数,那么会显示目前的执行的 等级。如果调整后的程序运行优先级高于-20,那么就以优先级-20来运行命令,如果调整后 的程序运行优先级低于19,则就以优先级19来运行命令。如果nice命令没有指定优先级的调 整值,那么就以缺省值10来调整程序运行优先级,既在当前程序运行优先级基础之上增加10。 实例 3-14 使用 nice 命令
3.24 crontab和at命令 有时希望系统能够定期执行或者在指定时间执行一些程序,此时可以使用 crontab和at 命令。 crontab命令可以定期执行执行一些程序,at命令可以在指定时间执行一些程序 1. crontab命令 语法: crontab crontabfile-uuer{-l-re 功能: crontab命令是用来让使用者在固定时间执行指定的程序,[ u user]是指定某个用 户(比如root),前提是必须有该用户的权限(比如root)。如果不使用[- u user]就表示设置 自己的 crontab。 crontab命令的参数和选项及其功能说明见表3-18 表3-18 crontab命令的参数及其说明 参数和选项 功能 用指定的文件 crontabfile替代目前的 crontab 指定某个用户,如果省略,默认是root用户 编辑某个用户的 crontab 删除某个用户的 crontab 列出某个用户的 crontab 实例3-15使用 crontab命令 问题描述:某单位防火墙的要求是,周一到周五上午8:00~1200,下午14:30~17:30对 工作人员的上网进行限制,其他时间不受限制。对此,使用了两个防火墙规则文件 iptables work.sh和 iptables rest. sh上班时间执行 iptables_work.sh中的规则,其他时间执行中 的 iptables rest. sh规则。为了使防火墙自动切换这两套防火墙规则,使用了 crond服务。 第1步:启动 crond服务 crond是 linux系统中的定时执行工具,可以自动运行程序。手工启动 crond服务的相关命 令如下 #service crond start 启动 crond服务 # service crond stop∥关闭cond服务 # service crond restart∥重启 crond服务 # service crond reload∥重新载入 crond配置文件 如果担心系统重启后 crond服务没有启动,可以将 crond服务在系统启动时自动启动,方 法有二:第一,执行 ntsysv命令,选择 crond即可;第二,在 /etc/rc. d/rc. local脚本文件末尾加 上“/sbin/ service crond start 第2步:编辑 iptables.cron文件 编辑 iptables. cron文件,内容如图3-38所示
3.2.4 crontab 和 at 命令 有时希望系统能够定期执行或者在指定时间执行一些程序,此时可以使用crontab和at 命令。crontab命令可以定期执行执行一些程序,at命令可以在指定时间执行一些程序。 1.crontab命令 语法:crontab crontabfile [-u user] {-l|-r|-e} 功能:crontab命令是用来让使用者在固定时间执行指定的程序,[ -u user ]是指定某个用 户(比如root),前提是必须有该用户的权限(比如root)。如果不使用[ -u user ]就表示设置 自己的crontab。crontab命令的参数和选项及其功能说明见表3-18。 表 3-18 crontab 命令的参数及其说明 参数和选项 功能 crontabfile 用指定的文件crontabfile替代目前的crontab -u 指定某个用户,如果省略,默认是root用户 -e 编辑某个用户的crontab -r 删除某个用户的crontab -l 列出某个用户的crontab 实例 3-15 使用 crontab 命令 问题描述:某单位防火墙的要求是,周一到周五上午8:00~12:00,下午14:30~17:30对 工作人员的上网进行限制,其他时间不受限制。对此,使用了两个防火墙规则文件 iptables_work.sh和iptables_rest.sh。上班时间执行iptables_work.sh中的规则,其他时间执行中 的iptables_rest.sh规则。为了使防火墙自动切换这两套防火墙规则,使用了crond服务。 第1步:启动crond服务 crond是linux系统中的定时执行工具,可以自动运行程序。手工启动crond服务的相关命 令如下: #service crond start //启动crond服务 #service crond stop //关闭crond服务 #service crond restart //重启crond服务 #service crond reload //重新载入crond配置文件 如果担心系统重启后crond服务没有启动,可以将crond服务在系统启动时自动启动,方 法有二:第一,执行ntsysv命令,选择crond即可;第二,在/etc/rc.d/rc.local脚本文件末尾加 上“/sbin/service crond start”。 第2步:编辑iptables.cron文件 编辑iptables.cron文件,内容如图3-38所示