Linux进程

一、程序的定义

1.1、程序的特点

是计算机中能够识别执行的指令,运行在计算机当中,以满足用户的需求。

描述进程完成的情况,是用来控制进程的。

二、进程的定义

2.1、进程的特点

进程具体的特点是,具有动态性、并发性、独立性、结构性。

动态性:进程是程序一次执行的过程,是具有生命周期的,一旦周期过去,就会消亡。

并发性:任何进程都可以和其他进程一起并发执行

独立性:进程是系统调度资源分配的一个单独单元

结构性:进程由程序、数据、进程控制块三部分组成

2.2、僵尸进程

通常情况下,造成僵尸进程的成因是因为该进程本应该已经执行完毕,但是该进程的父进程却无法完整的将该进程结束掉,而造成该进程一直存在于内存中

2.3、线程

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。

三、管理进程的相关命令

3.1、ps命令

ps命令可以确定有哪些进程正在运行和运行的状态,进程是否结束、进程有没有僵尸、哪些进程占用的资源最多等等。

常用选项:

选项 效果
-a

显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将示系统中所有的进程信息。

-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 列出某个 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:根据进程所在的终端终止相应进程

 

posted @ 2022-10-12 19:45  赵哈哈#  阅读(147)  评论(0编辑  收藏  举报