进程管理
进程
Process,是当程序被触发后,执行者的权限与属性、程序的代码与所需数据等都会被加载到内存中,操作系统给予这个内存内的单元一个标识符(Process ID,简称PID)。
程序
Procedure,通常为Binary program(二进制程序),存放在计算机的硬盘、光盘、U盘等存储媒体中,以实体文件的形态存在。
区别
程序是指令的集合,是进程运行的静态描述文本
进程则是程序在系统上顺序执行的动态活动。
简言之:进程就是运行中的程序。
进程的分类
- 交互进程:是由shell启动的进程,可以在前台或后台运行。交互进程在执行过程中,要求与用户进行交互操作。即用户需给出某些参数或者信息,进程才能继续执行。
- 批处理进程:是一个进程序列,负责按照顺序启动其它进程。
- 守护进程:指执行特定功能或者执行系统相关任务的后台进程。守护进程只是一个特殊的进程,不是内核的组成部分。许多守护进程在系统启动时启动,直到系统关闭时才停止运行。而某些守护进程只是在需要时才会启动,比如FTP或者Apache服务等,可以在需要的时候才启动该服务。
进程的属性
进程号(PID)、父进程号(PPID)、进程名、用户、cpu%、内存%、优先级、开启时间等。
启动进程命令
启动前台进程:
用户在shell中输入一条命令,即可启动一个前台进程(最常用方式)。eg. vim/proc/cpuinfo
启动后台进程:
在命令后加‘&’, eg. find/-name root>result.txt & 。
jobs[-l]:查看当前shell中已启动的后台进程执行状态
fg %n:将后台进程转为前台执行,n代表后台进程的工作号
查看进程状态
uptime:
①查看系统的当前时间、系统状态、用户已登录系统的时间、登录系统的用户数量
②过去的1、5、15分钟内运行队列中的平均进程数量
注意:通常,只要每个cpu的当前活动进程数不大于3,则表示系统的性能良好,如果每个cpu的进程数大于5,则表示这台计算机的性能有严重问题。
ps:
监控系统后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用该命令。
格式:ps 选项
该命令常用的选项如下:
-e:显示所有进程。
-f:全格式。
-h:不显示标题。
-l:长格式。
-w:宽输出。
-a:显示终端上的所有进程,包括其他用户的进程。
-r:只显示正在运行的进程。
eg. ps -ef ps -aux
top:
①显示进程的所占系统资源
②动态查看系统中正在运行的进程的状态,默认每隔3秒刷新一次
③在top程序的执行过程中输入命令,以交互方式控制执行结果
④top-bn1 一次性全部吧所有信息输出而非动态显示。
用户还可以在top程序的执行过程中输入命令,以交互方式控制执行结果。
常用的命令有以下几种:
<空格>:立即刷新显示。
h:显示帮助信息。
k:终止一个进程。
r:设置进程的优先级别。
s:改变两次刷新之间的延迟时间。
M:根据驻留内存大小进行排序。
P:根据CPU使用百分比大小进行排序。
T:根据时间/累计时间进行排序。
W:将当前设置写入~/.toprc文件中。
q:退出程序。
top -bn1 //一次性显示全部的进程信息并退出top环境
终止进程命令
终止前台进程:
①在程序退出时,该进程自动结束
②程序运行中,按Ctrl+c退出前台进程
终止后台进程:
使用kill命令: kill [选项] [信号代码] [进程ID]
eg. kill -l //列出kill命令支持的信号类型
kill –s 9 11703 等价于命令 kill -9 11703
代码15所对应的信号为SIGTERM,使用该信号可正常结束一个进程。而代码9所对应的信号为SIGKILL,使用该信号可用来强行终止一个进程。
①kill -15 pid //正常结束一个进程
②kill -9 pid //强制终止一个进程