程序:程序是保存在外部存储介质(如硬盘)中的可执行代码和数据的静态集合
进程:进程是运行在CPU及内存中出于动态执行状态的计算机程序,每个程序启动后可以创建多个进程
例如web,大量用户同时访问是,httpd服务会创建多个进程来提供服务
1.查看进程
(1.ps命令:查看静态的进程统计信息(ProcessesStatistic)
a:显示当前终端下的所有进程,包括其他用户的进程,与x选项结合是将显示系统中左右的进程信息
u:使用以用户为主的格式输出进程信息
x:显示当前用户所有终端下的进程信息
-e:显示系统内的所有进程信息
-l:使用长(long)格式显示进程信息
-f:使用完整的(Full)格式显示进程信息
以上是ps命令常用选项,有些选项是不带“-”的,带上以后可能会有出入,习惯把上面的选项组合用如:ps aux 或 ps -elf 命令
ps aux 输出命令解释
# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 19232 1576 ? Ss 09:40 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 09:40 0:00 [kthreadd]
USER:启动该进程的用户帐号名称
PID:该进程在系统中的数字ID号,唯一的
%CPU:占用CPU的百分比
%MEM:占用内存空间的百分比
VSZ:占用虚拟内存(swap空间)的大小
RSS:占用物理内存的大小
TTY:表明该进程在那个终端上运行。
STAT:显示了进程当前的状态,S(休眠),R(运行),Z(僵死),< (高级先级),N(低优先级),S(父进程),+(前台进程)。对于僵死状态的进程应该基于手动终止。
START:启动该进程的时间。
TIME:启动该进程的时间
COMMAND:启动该进程的命令名称
若执行ps -elf命令,则会以长格式显示所有进程,并且包含更丰富的内容,例如,输出信息中还包括PPID列(表示对应进程的父进程的PID号)
直接执行PS 不添加任何参数的话,只会显示当前正在运行的进程
由于执行命令以后显示的进程数量较多,需要借用管道符和grep 对显示的进程进行过滤,例如:查看bash进程
ps -elf | grep bash
(2.top命令:查看进程动态信息
top可以动态的查看进程信息,CPU,内存等系统资源的占用情况,默认情况下每三秒更新一次,top类似于windows系统的任务管理器。
top命令输出解释
系统任务(Tasks)信息:total 总进程数;running 正在运行的进程数;sleeping 休眠的进程数;stopped 终止的进程数;zombie 僵死无响应的进程数
CPU占用信息:us,用户占用;sy 内核占用;ni 优先级调度占用;id 空闲CPU;wa I/O等待占用;hi 硬件中断占用;si 软件中断占用;st 虚拟化占用,要了解空闲的CPU百分比,主要是看%id部分。
内存占用信息:total 总内存空间;used 已用内存;free 空闲内存;buffers 缓冲区域
交换空间占用:同上
(3.pgrep命令:查询进程信息
格式:
pgrep [参数] [进程名]
-l 查询名字
-U 查询用户
-t 查询运行在特定终端上的进程
(4.pstree命令:查看进程树
pstree命令可以输出liux系统中各进程的树形结构
格式:
pstree [参数] [用户名/服务名]
-p 选项使用时可以同时列出对应的PID号
-u 选项可以列出对应的用户名
-a 选项可以列出完整的命令信息
2.控制进程
(1.手动启动进程
进程可以分为前台运行和后台运行两种,前台运行需要等待运行完成后才可以运行下一个命令,后台运行的话,可以直接运行下一个命令。
怎么让进程在后台运行呢?在命令后面添加“&”,就可以了
例: service vncserver restart &
(2.挂起当前的进程(调入后台并停止执行)
Ctrl+z 当进程正在运行的时候按 Ctrl+z 组合键可以停止执行服务并调用到后台。
(3.查看后台的进程
jobs -l 查看隐藏的进程
(4.恢复后台运行的进程
未完待续......