进程和计划任务管理
一、查看和控制进程
程序是保存在外部存储介质(如硬盘、光盘)中的可执行机器代码和数据的静态集合,而进程是在CPU及内存中处于动态执行状态的计算机程序。在Linux系统中,每个程序启动后可以创建一个或者多个进程。例如,提供Web服务的httpd服务,当有大量用户同时访问Web页面时,httpd程序可能会创建多个进程来提供服务。
1、查看进程
使用不同的命令工具可以从不同的角度查看进程状态。
1)ps命令–查看静态的进程统计信息(processes statistic)
ps命令时Linux系统中最为常用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照。通过不同的命令选项,可以有选择性的查看进程信息。
-
a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合则将显示系统中的所有进程信息。
-
u:使用以用户为主的格式输出进程信息。
-
x:显示当前用户在所有终端下的进程信息。
-
-e:显示系统内的所有进程信息。
-
-l:使用长格式(long)显示进程信息。
-
-f:使用完整的(full)格式显示进程信息。
以上列出的是ps命令中常用的几个选项,要注意有一部分不带“-”前缀(添加“-”前缀后含义可能有出入,详细可以参考man手册页)。习惯上将上述选项组合使用。如执行“ps -elf”或“ps aux”命令。
执行“ps aux”命令后,将以简单列表的形式及显示出进程信息,如下所示。
上述输出信息中,第一行为列表标题,其中各字段的含义描述如下。
-
USER:启动该进程的用户账号的名称。
-
PID:该进程在系统中的数字ID号,在当前系统中是唯一的。
-
TTY:标名该进程在哪个终端上运行。“?”表示未知或不需要终端。
-
STAT:显示了进程当前的状态,如S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程)。对处于僵死状态的进程应该予以手动终止。
-
START:启动该进程的时间。
-
TIME:该进程占用的CPU时间。
-
COMMAND:启动该进程的命令的名称。
-
%CPU:CPU占用的百分比。
-
%MEN:内存占用的百分比。
-
VSZ:占用虚拟内存(swap空间)的大小。
-
RSS:占用常驻内存(物理内存)的大小。
若执行“ps -elf”命令,则将长格式显示系统中的进程信息,并且包含更丰富的内容。例如,输出信息还包含PPID列(表示对应父进程的PID号),如下所示。
直接执行不带任何选项的ps命令时,将只显示当前用户会话中打开的进程。
由于系统中运行的进程数量较多,需要查询某一个进程的信息时可以结合管道符操作和grep命令进行过滤。例如,执行下列操作可以过滤包含“bash”的进程信息。
2)top命令–查看进程动态信息
使用ps命令查看到的是一个静态的进程信息,并不能连续的反馈出当前进程的运行状态。使用top命令将会在当前终端以全屏交互式的界面显示进程排名,即使跟踪包括CPU、内存等系统资源占用情况,默认情况每三秒刷新一次,类似于Windows的任务管理器。
上述输出信息中,开头部分显示了系统任务(tasks)、CPU占用、内存占用(Mem)、交换空间(swap)等汇总信息;汇总信息下方依次显示当前进程的排名情况。相关信息的含义表述如下:
-
系统任务(Tasks)信息:total,总进程数;running,正在运行的进程数;sleeping,休眠的进程数;stoped,中止的进程数;zombie,僵死无相应的进程数。