Linux进程
一、程序的定义
1.1、程序的特点
是计算机中能够识别执行的指令,运行在计算机当中,以满足用户的需求。
描述进程完成的情况,是用来控制进程的。
二、进程的定义
2.1、进程的特点
进程具体的特点是,具有动态性、并发性、独立性、结构性。
动态性:进程是程序一次执行的过程,是具有生命周期的,一旦周期过去,就会消亡。
并发性:任何进程都可以和其他进程一起并发执行
独立性:进程是系统调度资源分配的一个单独单元
结构性:进程由程序、数据、进程控制块三部分组成
2.2、僵尸进程
通常情况下,造成僵尸进程的成因是因为该进程本应该已经执行完毕,但是该进程的父进程却无法完整的将该进程结束掉,而造成该进程一直存在于内存中
2.3、线程
线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。
三、管理进程的相关命令
3.1、ps命令
ps命令可以确定有哪些进程正在运行和运行的状态,进程是否结束、进程有没有僵尸、哪些进程占用的资源最多等等。
常用选项:
选项 | 效果 |
-a |
|
-u |
使用以用户为主的格式输出进程信息。 |
-x |
显示当前用户在所有终端下的进程信息。 |
-e |
显示系统内的所有进程信息。 |
-l | 使用长(Long)格式显示进程信息。 |
ps aux:可以查看系统中所有进程
ps -le:可以查看系统中所有进程,而且还能看到进程的父进程的PID和进程优先级
ps -l :只能看到当前shell环境的进程
3.2、top命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
top 命令的输出内容是动态的,默认每隔 3 秒刷新一次。命令的输出主要分为两部分
第一部分:在前五行,显示整个系统的资源使用状态。
第二部分:从第六行开始,显示的是系统中进程的信息
第一部分
(1)第一行 -----表示任务队列信息
- 第一个时间 :表示系统时间
- up部分 :系统的运行时间
- user :显示有几个用户登录
- load :系统的负载情况
(2)第二行 ------进程信息
- task :系统中的进程总数
- running :正在运行的进程数
- sleeping :睡眠的进程数
- stopped :正在停止的进程数
- zombie :僵尸进程数
(3)第三行 ----cpu信息
- us :用户模式的占用的cpu百分比
- sy :系统模式占用CPU的百分比
- :改变过优先级的用户所占cpu的百分比
- id :空闲cpu所占cpu的百分比
- wa :等待输入/输出的进程占用cpu的百分比
- hi :硬中断请求服务占用的cpu的百分比
- si :软中断请求服务占用的cpu的百分比
- st :虚拟时间百分比
(4)第四行---内物理存的信息
- total :物理内存的总量
- used :已经使用的物理内存的数量
- ee :空闲的内存数量
- buffers :作为缓存的内存数量
(5)第五行 ---交换分区的信息
- toatal :交换分区的总量
- used :已经使用的交换分区数量
- free :空闲交换分区的大小
- cached :作为缓存交换分区的大小
第二部分
top第二部分主要是系统进程信息。
下面有各个字符的信息
- PID :进程的id
- USER :该进程所属的用户
- pR :优先级,数值越小越优先
- VIRT :该进程使用的虚拟内存的大小
- RES :该进程使用的物理内存的大小
- SHR :共享内存大小
- S :进程状态
- %CPU :该进程占用CPU百分比
- %MEM :该进程占用内存的百分比
- TIME+ :该进程占用的cpu的运算时间
- COMMAND:进程的命令名
3.3、pgrep命令
查看指定的进程
pgrep + [选项] + 进程名
常用的选项
- U:指定的用户
- I:显示进程名
- a:显示完整格式的进程名
- p:显示指定进程的子进程
3.4、pstree命令
以树形结构的方式显示进程
pstree + [选项] + [用户或pid号]
常见的选项
- a:显示每个进程对应的完整指令
- p:显示pid号
- T:不显示线程
- u:显示用户切换
- H:高亮显示指定进程
3.5、lsof命令
根据文件找到对应的进程关系
功能 | |
---|---|
-c 字符串 | 只列出以字符串开头的进程打开的文件。 |
+d 目录名 | 列出某个目录中所有被进程调用的文件。 |
-u 用户名 | 只列出某个用户的进程打开的文件。 |
-p pid |
四、进程的启动和关闭
4.1、进程的启动
前台启动:软件的前台运行,就是软件直接由窗口运行,能和电脑使用者互动的界面。
后台启动:软件的前台运行,就是软件直接由窗口运行,能和电脑使用者互动的界面。
4.2、进程的关闭
kill 命令用于删除执行中的程序或工作
命令格式
kill + [信号] + 进程号
常见信号
- 1:重新加载进程
- 9:杀掉一个进程
- 15:正常结束一个进程
killall 命令
Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。
killall + [选项] + [信号] + 进程名
常见选项
- -i:交换式的方式,询问是否杀死某个进程
- -l:忽略大小写
pkill命令
pkill命令 用于杀死一个进程,与 kill不同的是它会杀死指定名字的所有进程
命令格式
pkil + [-t 终端名 ] + 进程名
常见的选项
- -U:根据用户所属来中止相应进程
- -t:根据进程所在的终端终止相应进程