16.1.1 进程与程序

  • ·程序 (program):通常为 binary program ,放置在储存媒体中 (如硬盘、光盘、软盘、磁带等), 为实体文 件的型态存在;
  • ·进程 (process):程序被触发后,执行者的权限与属性、程序的程序代码与所需数据等都会被加载内存中, 操作系统并给予这个内存内的单元一个标识符 (PID),可以说,进程就是一个正在运作中的程序

第一个 bash 的 PID 与第二个 bash 的 PPID 都是 13928 啊, 因为第二个 bash 是来自于第一个所产生的嘛!

常驻在内存当中的进程通常都是负责一些系统所提供的功能以服务用户各项任务,因此这些常驻程序 就会被我们称为:服务 (daemon)。所以,一般 daemon 类型的程序都会加上 d 在文件名后头~包括服务器篇我们会看到的 httpd, vsftpd。

16.3.1 进程的观察

ps :将某个时间点的进程运作情况撷取下来。

[root@study ~]# ps aux <==观察系统所有的进程数据 

[root@study ~]# ps -lA <==也是能够观察所有系统的数据 

[root@study ~]# ps axjf <==连同部分进程树状态

  

  

选项与参数:

-A :所有的 process 均显示出来,与 -e 具有同样的效用;

-a :不与 terminal 有关的所有 process ;

-u :有效使用者 (effective user) 相关的 process ;

x :通常与 a 这个参数一起使用,可列出较完整信息。

输出格式规划:

l :较长、较详细的将该 PID 的的信息列出;

j :工作的格式 (jobs format)

-f :做一个更为完整的输出。

常用的:

一个是只能查阅自己 bash 进程的『 ps -l 』

一个则是可 以查阅所有系统运作的进程『 ps aux 』!

[agan@localhost root]$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
S - do_wai pts/ :: bash
R - - pts/ :: ps

S:代表这个进程的状态 (STAT),主要的状态有:

  • § R (Running):该程序正在运作中;
  • § S (Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal)。
  • § D :不可被唤醒的睡眠状态,通常这支程序可能在等待 I/O 的情况(ex>打印)
  • § T :停止状态(stop),可能是在工作控制(背景暂停)或除错 (traced) 状态;
  • § Z (Zombie):僵尸状态,进程已经终止但却无法被移除至内存外。
  • PRI/NI:Priority/Nice 的缩写,代表此进程被 CPU 所执行的优先级,数值越小代表该进程越快被 CPU 执行
  • ADDR/SZ/WCHAN:都与内存有关,ADDR 是 kernel function,指出该进程在内存的哪个部分,如果是个 running 的进程,一般就会显示『 - 』 / SZ 代表此进程用掉多少内存 / WCHAN 表示目前进程是否运作中, 同样的, 若为 - 表示正在运作中。
  • TIME:使用掉的 CPU 时间,注意,是此进程实际花费 CPU 运作的时间,而不是系统时间;
[agan@localhost root]$ ps aux 
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 0.0 0.3 ? Ss : : /usr/lib/systemd/systemd --switched-root --system --d root 0.0 0.0 ? S : : [kthreadd]
root 0.0 0.0 ? S< : : [kworker/:0H]
root 0.0 0.0 ? S : : [ksoftirqd/]
root 0.0 0.0 ? S : : [migration/]
root 0.0 0.0 ? S : : [rcu_bh]
root 0.0 0.0 ? S : : [rcu_sched]
  • § VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
  • § RSS :该 process 占用的固定的内存量 (Kbytes)
  • § TTY :该 process 是在那个终端机上面运作,若与终端机无关则显示 ?,另外, tty1-tty6 是本机上面的登 入者进程,若为 pts/0 等等的,则表示为由网络连接进主机的进程。
  • § STAT:该进程目前的状态,状态显示与 ps -l 的 S 旗标相同 (R/S/T/Z)

top:动态观察进程的变化

[root@localhost ~]# top [-d 数字] | top [-bnp]
  • -b :以批次的方式执行 top ,还有更多的参数可以使用喔! 通常会搭配数据流重导向来将批次的结果输出成为文件。
  • -n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
  • -p :指定某些个 PID 来进行观察监测而已。

在 top 执行过程当中可以使用的按键指令:

  • ? :显示在 top 当中可以输入的按键指令;
  • P :以 CPU 的使用资源排序显示;
  • M :以 Memory 的使用资源排序显示;
  • N :以 PID 来排序喔!
  • T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。
  • k :给予某个 PID 一个讯号 (signal)
  • r :给予某个 PID 重新制订一个 nice 值。
  • q :离开 top 软件的按键。
top - 17:53:08 up 12:51, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1863104 total, 1569792 free, 142924 used, 150388 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1561264 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 127952 6516 4104 S 0.0 0.3 0:01.36 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:00.74 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:00.26 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.36 watchdog/1

  

  

依次显示信息:

1->当前时间、开机时间、同时使用用户数,系统在 1, 5, 15 分钟的平均工作负载。

2->显示的是目前进程的总量与个别进程在什么状态(running, sleeping, stopped, zombie)

3->显示的是 CPU 的整体负载

4、5->表示目前的物理内存与虚拟内存 (Mem/Swap) 的使用情况

6->输入指令,显示状态的地方

范例二:将 top 的信息进行 2 次,然后将结果输出到 /tmp/top.txt 
[root@study ~]# top -b -n 2 > /tmp/top.tx
范例三:我们自己的 bash PID 可由 $$ 变量取得,请使用 top 持续观察该 PID
[root@study ~]# echo $$ 14836 <==就是这个数字!他是我们 bash 的 PID
[root@study ~]# top -d 2 -p 14836 top - 01:00:53 up 6:14, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie %Cpu(s):0.0 us, 0.1 sy, 0.0 ni, 99.9 id, KiB Mem : 2916388 total, 1839264 free, 0.0 wa, 0.0 hi, 353424 used, 0.0 si, 0.0 st 723700 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used. 2318848 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14836 root 20 0 116272 3136 1848 S 0.0 0.1 0:00.07 bash

如果觉得内存以KB为单位不方便监控,可以按下E,则分别以KB、MB、GB、TB、PB、EB单位显示

Linux-进程的观察的更多相关文章

  1. 如何灵活运用Linux 进程资源监控和进程限制

    导读 每个 Linux 系统管理员都应该知道如何验证硬件.资源和主要进程的完整性和可用性.另外,基于每个用户设置资源限制也是其中一项必备技能. 在这篇文章中,我们会介绍一些能够确保系统硬件和软件正常工 ...

  2. Linux 进程与信号的概念和操作

    进程 主要参考: http://www.bogotobogo.com/Linux/linux_process_and_signals.php 信号与进程几乎控制了操作系统的每个任务. 在shell中输 ...

  3. Linux进程作业常用命令

    从鸟哥的私房菜书里摘抄的部分,方便查阅 一.作业管理     1.直接将命令放到后台执行的&         如想将/etc 备份为/tmp/ect.tar.gz时不想等待,可以这样做:    ...

  4. Linux 进程资源用量监控和按用户设置进程限制

    每个 Linux 系统管理员都应该知道如何验证硬件.资源和主要进程的完整性和可用性.另外,基于每个用户设置资源限制也是其中一项必备技能. 在这篇文章中,我们会介绍一些能够确保系统硬件和软件正常工作的方 ...

  5. Linux 进程与信号的概念和操作 linux process and signals

    进程 主要参考: http://www.bogotobogo.com/Linux/linux_process_and_signals.php 译者:李秋豪 信号与进程几乎控制了操作系统的每个任务. 在 ...

  6. Linux进程管理及while循环

    目录 进程的相关概念 进程查看及管理工具的使用 Linux系统作业控制 调整进程优先级 网络客户端工具 bash之while循环 20.1.进程类型 守护进程 daemon,在系统引导过程中启动的进程 ...

  7. TODO:Golang Linux进程退出说明

    TODO:Golang Linux进程退出说明 Golang使用os.Exit(code)进程退出导致当前程序退出并返回给定的状态代码.传统上,code代码为零表示成功退出,非零错误退出. sysca ...

  8. Linux进程管理子系统分析【转】

    本文转载自:http://blog.csdn.net/coding__madman/article/details/51298732 Linux进程管理: 进程与程序: 程序:存放在磁盘上的一系列代码 ...

  9. 12个Linux进程管理命令介绍(转)

    12个Linux进程管理命令介绍 [日期:2015-06-02] 来源:Linux中国  作者:Linux [字体:大 中 小]   执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的 ...

  10. linux 进程管理相关内容

    简介 当我们运行程序时,Linux会为程序创建一个特殊的环境,该环境包含程序运行需要的所有资源,以保证程序能够独立运行,不受其他程序的干扰.这个特殊的环境就称为进程. 每个 Linux 命令都与系统中 ...

随机推荐

  1. Ansible 常见模块介绍

    目录 Ansible 常见模块介绍 ping 模块 command 模块 cron 模块 user 模块 group 模块 copy 模块 file 模块 service 模块 shell 模块 sc ...

  2. mysql 中文不显示问题

    MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation).对于字符集的支持细化到四个层次: 服务器(ser ...

  3. Scrapy持久化存储-爬取数据转义

    Scrapy持久化存储 爬虫爬取数据转义问题 使用这种格式,会自动帮我们转义 'insert into wen values(%s,%s)',(item['title'],item['content' ...

  4. cmd for install pygame in python 3.7

    Higher version Python better and convinient to use! Down load pygame whl file: C:\Work\software>p ...

  5. python_排序

    快速排序 基本思想是:从一个数组中随机选出一个数N,通过一趟排序将数组分割成三个部分,1.小于N的区域 2.等于N的区域 3.大于N的区域,然后再按照此方法对小于区的和大于区分别递归进行,从而达到整个 ...

  6. 虚拟化--思杰citrix

    目前虚拟化主要有vmware,微软,思杰 一:从硬件搭建开始 硬件需要问的几个问题: a.负载均衡.防火墙.路由器怎么配置? b.新增一块存储的话,怎么新增? 二:安装citrix xen serve ...

  7. 检测是否引入jQuery

    if (typeof jQuery != 'undefined') { document.write("jquery已经被加载"); } else { document.write ...

  8. Blazor 版 Bootstrap Admin 通用后台权限管理框架

    前言 上一篇介绍过了前后台分离的 NET Core 通用权限管理系统 在这篇文章简要的介绍了 Bootstrap Admin 后台管理框架的一些功能.本篇文章带来的是微软最新出的 Blazor 版本的 ...

  9. MySQL必知必会(汇总数据, 聚集函数)

    SELECT AVG(prod_price) AS avg_price FROM products; #AVG只能用于单个列求平均值,如想计算多个列,必须用多个AVG() SELECT AVG(pro ...

  10. Gradle+Groovy基础篇

    在Java项目中,有两个主要的构建系统:Gradle和Maven.构建系统主要管理潜在的复杂依赖关系并正确编译项目.还可以将已编译的项目以及所有资源和源文件打包到.war或.jar文件中.对于简单的构 ...