查看进程

时间:2019-04-29 03:17:31  来源:igfitidea点击:

什么是进程?

任何正在执行的程序都称为进程。进程包括工作存储,管理信息(例如正在使用哪些文件),可变信息环境和进程号。这些进程号称为PID。操作系统内核的工作是创建进程,分配CPU时间和存储空间,以及在任务完成后进行清理。进程可以调用操作系统内核以访问文件,设备或网络资源。可以将进程分为父进程或子进程。父进程是为产生另一个进程(称为子进程)的进程指定的名称。

系统上的第一个过程的PID为1。这表示这是启动时创建的过程。该程序也称为初始化过程init过程负责引导系统。

Linux为我们提供了一些非常好的监视过程的工具。

ps命令

我们要看的第一个命令是ps。此命令报告当前系统的快照,显示有关活动进程的信息。最简单的形式:

john@john-desktop:~/test_examples$ ps
  PID TTY          TIME CMD
 4701 pts/0    00:00:00 bash
 6635 pts/0    00:00:00 ps

在上面,我们有一个正在运行的bashshell和一个ps命令。

PID列标识过程号。
TTY给出了终端的名称。
TIME是进程使用的CPU时间量。
CMS是执行的进程名称。

进程状态

Linux系统上的进程通常属于以下类别之一:

运行的(R)-可以为该进程分配CPU。
睡眠(S)-睡眠,进程正在等待事件。
僵尸(Z)-这是一个已完成的过程,但是其父进程未获取其退出代码。这意味着该进程不能死亡,而是保持不死状态。

ps命令的基本用法

将PID传递给过程将显示基本信息:

john@john-desktop:~/test_examples$ ps 1
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 /sbin/init

定制ps命令输出的选项

ps -eo uname,pid,ppid,nlwp,pcpu,pmem,psr,start_time,tty,time,args 

显示当前shell中当前进程信息

john@john-desktop:~/test_examples$ ps
  PID TTY          TIME CMD
 4701 pts/0    00:00:00 bash
 6939 pts/0    00:00:00 ps
john@john-desktop:~/test_examples$ ps 4701
  PID TTY      STAT   TIME COMMAND
 4701 pts/0    Ss     0:00 bash
john@john-desktop:~/test_examples$ ps $$
  PID TTY      STAT   TIME COMMAND
 4701 pts/0    Ss     0:00 bash
john@john-desktop:~/test_examples$ ps l $$
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
0  1000  4701  4692  20   0   7808  3936 wait   Ss   pts/0      0:00 bash

$$是一个shell变量,显示您当前shell的PID。

  1. UID表示进程所有者的用户id
  2. PPID是父进程ID。
  3. PRI是进程的优先级。数字越高,优先级越低。
  4. VSZ是内存中的进程大小(KiB)。
  5. RSS是RAM(KiB)中进程的当前大小。

所有过程信息都存储在/ proc文件系统中。

常见的ps命令示例

  1. ps -ef 显示当前系统上运行的所有进程。

  2. ps -eF 显示以扩展格式运行的所有进程。

  3. ps -elF 显示带有附加线程信息的所有进程。

  4. ps --forest 显示进程层次结构

nice和renice命令

nice值和nice命令

每个Linux进程都有一个关联的优先级,该优先级用于确定其他进程之间如何共享CPU时间片。
nice数字的值越高,优先级越低。
默认情况下,进程的nice值0开始。执行ps命令时可以看到这些nice的设置。

为了很好地启动进程,我们可以执行类似于nice -n 10 program的命令。
通过指定值10,我们的程序将允许其他进程具有对CPU的更高访问权限。

renice命令

如我们所见,nice命令仅在启动程序时使用。要更改正在运行的进程的nice值,我们必须使用一个名为renice的命令。
renice 10 1234将进程1234的nice调整为10。

top

top命令是几乎所有Linux发行版附带的强大工具。top命令允许用户或管理员查看系统上正在运行的进程,并确定进程正在使用多少资源。您也可以使用此工具kill进程或取消进程。

top