专栏首页初见Linux10-1 进程如何工作

10-1 进程如何工作

本章将介绍以下命令:

  • ps : 显示当前所有进程的运行情况。
  • top : 实时显示当前所有任务的资源占用情况。
  • jobs : 列出所有活动作业的状态信息。
  • bg : 设置在后台中运行作业。
  • fg : 设置在前台中运行作业。
  • kill : 发送信号给某个进程。
  • killall : 杀死指定名字的进程。
  • shutdown : 关机或重启系统。

一、进程如何工作

父进程创建子进程

一个程序的运行可以触发其它程序的运行。

进程的有序进行

内核会保存每个进程的信息以便确保任务有序进行。 比如,每个进程将被分配一个称为进程ID(PID)的号码。进程ID是按递增的顺序来分配的,init 进程的PID始终为1。

1.使用 ps 命令查看进程信息

(0)ps命令简介

(1)语法格式

ps [选项]

'''
 功能: 用来查看进程信息。

 参数:

 选项:

 返回值:
'''
① 示例
Ⅰ.只输入 ps 命令
 ps
ps命令.png

输出结果列出了两个进程:进程 3260 和 进程 4001,分别对应 bash 命令和 ps 命令。 由此可见,在默认情况下,ps 命令输出的内容并不多,只是输出 和当前终端会话相关的进程信息

为了获得更多的信息,需要添加一些选项。

Ⅱ.添加 x 选项

添加 x 选项(注意:这里没有前置连字符)将告诉 ps 命令显示所有的进程,而不需要关注它们是由哪个终端控制的,使用这个选项可以查看所有进程的列表信息

 ps x
ps命令x选项.png

由于系统中运行着大量的进程,所以 ps 命令将会输出一个长列表。 把 ps 命令的输出作为less 命令的输入的方法通常很管用,它可更方便地查看显示结果。有些选项组合也会产生很长的输出行,因此最大化终端仿真窗口很有用。

Ⅲ.选项组合 aux

这是一个常用的选项组合,注意不带前置连字符。 该选项组合将会显示属于每个用户的进程信息

ps aux
ps命令aux选项组合.png
Ⅳ.为何不带前置连字符?

不带前置连字符将使得命令以“BSD模式”运行。 ps命令的 Linux 版本可以模拟多种 UNIX 版本中 ps 程序的运行方式,使用这些选项将显示更多列的信息。

(2)ps 命令输出的字段信息

① PID(进程ID)

进程ID。

② TTY

代表了进程的控制终端(controlling terminal)。 是 teletype (电传打字机)的缩写。 ? 表示没有控制终端

③ STAT(进程状态)

STAT 是 state 的缩写。 显示的是进程的当前状态

状态

含义

R

运行状态。进程正在运行或者准备运行。

S

睡眠状态。进程不在运行,而是在等待某事件发生,如键盘输入或者收到网络报文。

D

不可中断的睡眠状态。进程在等待 I/O 操作,如硬盘驱动。

T

暂停状态。进程被指示暂停(后续还可继续运行)。

Z

无效或“僵尸”进程。子进程被终止,但是还没有被其父进程彻底释放掉。

<

高优先级进程。进程可以被赋予更多的重要性,分配更多的CPU时间。进程的这一特性称为优先级。高优先级的进程被说成较不友好,是因为它将消耗更多的CPU时间,这样留给其它进程的CPU时间就会减少。

N

低优先级进程。低优先级进程(友好进程)只有在其它更高优先级的进程使用完处理器后才能够获得使用处理器的时间。

这些进程状态后面可以带其它地字符来表示不同的特殊进程特性。

④ TIME

表示进程消耗的CPU时间总和(即进程的运行时间)。 回到示例Ⅰ中,可以看到 bash进程和 ps进程,没有使得计算机变得忙碌。

⑤ COMMAND

执行的命令。

(3)BSD模式下ps命令输出的列字段

标题

含义

USER

用户ID。表示该进程的所有者。

%CPU

CPU 使用百分比。

%MEM

内存使用百分比。

VSZ

虚拟耗用内存大小。

RSS

实际使用的内存大小。(即进程使用的物理内存RAM大小,以KB为单位。)

START

进程开启的时间。若数值超过 24 个小时,那么将使用日期来显示。

2.使用 top 命令动态查看进程信息

ps 命令可以显示有关机器运行情况的很多信息,但是它提供的只是在 ps 命令被执行时刻机器状态的一个快照。 要想查看机器运行情况的动态视图,可以使用 top 命令

(0)top命令简介

top 命令将按照进程活动的顺序,以列表的形式持续更新显示系统进程的当前信息默认每 3 秒更新一次)。 它主要用于查看系统最高(top)进程的运行情况,其名称也源自于此。 top 命令的显示内容包含2个部分:顶部显示系统总体状态信息下面显示的是一张按CPU活动时间排序的进程情况表

(1)语法格式

top

'''
 功能: 用来查看进程信息。

 参数: 

 选项:

 返回值: 包含2部分: ①顶部显示**系统总体状态信息**。
                     ②下面显示的是一张按CPU活动时间排序的进程情况表。
'''
top命令1.png

下图,是我过了几秒钟的截图,可以看到是有区别的,这是因为 top 命令是实时更新。

top命令2.png
① 顶部信息中的字段

字段

含义

1

top

程序名。

1

17:01:15

当前时间。

1

up 7:34

正常运行时间(uptime)。从机器最后一次启动开始计算的时间总数。在上例中,系统已经运行了大约7.5小时。

1

1 user

有 1 个用户已登录。

1

load average:

负载均值:指的是等待运行的进程数;即可共享CPU资源的处于可运行状态的进程数。显示的 3 个值分别对应不同的时间段:第1个对应的是前60秒的均值;第 2 个对应的是前 5 分钟的均值;第 3 个对应的是前 15 分钟的均值。该值小于 1.0 表示该机器并不忙。

2

任务(tasks)

统计进程数及各个进程的状态信息。

3

2.7%us

2.7%的CPU时间被用户进程占用(此指处于内核外的进程)。

3

0.7%sy

0.7%的CPU时间被系统进程(即内核进程)占用。

3

0.0%ni

0.0%的CPU时间被友好进程(即低优先级进程)占用。

3

96.7%id

96.7%的CPU时间是空闲的。

3

0.0%wa

0.0%的CPU时间用来等待 I/O 操作。

4

Mem:

显示物理RAM(随机存取内存)的使用情况。

5

Swap:

显示交换空间(虚拟内存)的使用情况。

(2)可接受键盘指令

top 命令可以接受许多键盘指令,其中最常用的有 2 个:

  • 一个是h:输入后将显示程序的帮助页面。
  • 另一个是 q:用来退出 top 命令(不输入 q 的话,不会返回shell提示符)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 1.进程管理

    11、对进程的描述错误的是( d) A.进程是动态的概念 B.进程执行需要处理机 C.进程是有生命期的 D.进程是指令的集合

    见贤思齊
  • 2.进程控制

    有2个循环程序A和B,它们共享一个变量N,程序A每执行一次时,都要做N:=N+1; B则每次要执行Print(N), 然后再做N:=0. 若程序A,B以不同的速...

    见贤思齊
  • 10-2 控制进程

    见贤思齊
  • 「Linux 底层原理」理解进程内存布局,掌握程序动态

    简单来讲,进程就是运行中的程序。更进一步,在用户空间中,进程是加载器根据程序头提供的信息将程序加载到内存并运行的实体。

    CSDN技术头条
  • 僵尸进程

      在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等.但是仍然为其保留一定的信息(包括进程号the process ID,退出状态t...

    猿人谷
  • 进程 · 全家桶

    fork调用一次返回两次 父进程中返回子进程id (就是大于0的意思) 子进程返回0 读时共享写时复制,可保高效

    看、未来
  • 关于进程的分类

    默认情况下,进程是在前台运行的,这时就把shell给占据了,我们无法进行其它操作。对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候...

    shengjk1
  • 1.进程管理

    11、对进程的描述错误的是( d) A.进程是动态的概念 B.进程执行需要处理机 C.进程是有生命期的 D.进程是指令的集合

    见贤思齊
  • Linux笔记(10)| 进程概述

    父进程返回正整数,子进程返回0,在执行fork函数之前,操作系统只有一个进程,fork函数之前的,代码只会被执行一次,在执行fork函数之后,操作系统有两个几乎...

    飞哥
  • linux进程管理

    查看进行使用的指令是 ps ,一般来说使用的参数是 ps -aux,ps -ef,正常与grep连用

    小小咸鱼YwY

扫码关注云+社区

领取腾讯云代金券