Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

一、进程定义

1.进程的定义:

  1. 程序是静态的代码文件
  2. 进程是指程序运行时的形态
  3. 进程是有生命周期的(准备期,运行期,终止期)

2.进程&线程

  1. 进程是资源调用的最小单位
  2. 线程是进程的最小单位
  3. 程序执行流是从上到下贯穿运行的
  4. 当进程是多任务,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程
  5. 线程资源是共享的

3.进程状态

  1. R(TAKS_RUNNING)                          ##可执行态(running,ready)
  2. #S(TASK_INTRRUPTABLE)             ##可唤醒休眠
  3. #D(TASK_UNINTRRUPTABLE)        ##不可唤醒休眠
  4. #T(TASK_STOP)                               ##暂停状态
  5. #Z(EXIT_ZOMBIE)                            ##僵死态

 二、进程查看命令

1.gnome-system-monitor       ##图形进程查看工具

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

2.ps                                        ##进程查看

<1>ps 命令的三种执行风格 unix (-f   -a)    bsd (f    a)      GNU

a                    #与终端相关的进程(当用户登陆系统后产生的进程都是带终端的)

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

x                    #与终端无关相关的进程

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

u                    #用户信息归类查看方式

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

f                     #进程层级关系

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

o                    #显示指定参数  pid   comm   nice   pri   pcpu   ppid   stat,  user,group

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

e                    #显示进程的详细信息(系统资源的调用)

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

-e                 #显示所有进程

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

-f                  #显示进程完整格式

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

-H                #显示进程的层级结构

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

<2>显示进程的指定信息(参数)

ps    -o       xxx           ##显示进程的指定信息
                   comm      ##进程名称
                   user         ##进程所有人
                   group      ##进程所有组
                   %cpu      ##进程cpu使用率
                   %mem    ##进程内存使用率
                   pid           ##进程id
                   nice         ##进程优先级

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

<3>ps的常用组合

ps   ax                     ##显示当前系统中的所有进程 

 

显示信息如下:

                      PID          进程id

                      TTY          进程用到的终端

                      STAT       进程状态

                      TIME        进程占用cpu时长

                       COMMAND        进程名称
Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

ps aux        ##显示系统中所有进程并显示进程用户

显示信息如下:

                              USER                         进程所有人

                              PID                             进程id

                              %CPU                        进程使用cpu的用量

                              %MEM                       进程所用到的内存用量

                              VSZ                            进程使用的虚拟内存大小

                              RSS                           进程常驻内存中的数据大小

                              TTY                             进程用到的终端

                              STAT                          进程状态

                              START                       进程运行时长

                              TIME                          进程占用cpu时长

                              COMMAND              进程名称 

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

ps ef                      ##显示进程详细信息并显示进程父子关系

显示信息如下:

                      PID          进程id

                      TTY          进程用到的终端

                      STAT       进程状态

                      TIME        进程占用cpu时长

                       COMMAND        进程名称

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

<4>进程排序       ps ax  --sort= +|- %cpu   ##显示按cup的使用排序

ps   ax  --sort=+%cpu | -%cpu      -o    %cpu,comm,pid

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

ps   axo %mem,comm,pid  --sort=+%mem| -%mem 

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

 显示cpu使用量前五的进程的pid以及使用量

ps   axo   pid,%cpu   --sort=-%cpu   |head -n 6   |tail -n 5

ps    ax     --sort=+%cpu   -o  pid,%cpu  |head -n 6  |tail -n 5

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

3.pgrep          ##进程guolv

                       -u   uid                             #显示指定用户进程

                       -U  user                           #显示指定用户进程

                       -t     tty                             #显示指定终端进程

                       -l                                      #显示进程名称

                       -a                                     #显示进程的完整名称

                       -P                                     #显示进程的子进程
Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

4. pidof                        #查看进程的pid

pidof   vim                      ##查看vim的pid

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

 

 5.top                               #动态进程查看

1.top中的内容显示信息

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

top:系统负载 = uptime

          #13:17:54 系统时间

           #up 47 min   运行时长

           #1 users    系统中有一个用户登陆

           #load average: 0.06s, 0.02s, 0.00s     #处理系统中1分钟,5分钟,15分钟的事件需要等待时间分别为多少秒

                                        1min 5min 15min
Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号


Tasks:任务

             #317 total          任务总量

             #1 running          正在运行

             #316 sleeping   休眠任务数量

             #0 stopped        被暂停数量

             #0 zombie          僵死任务数量


 

%Cpu(s)

             #1.2 us              用户空间

             #1.2 sy              内核空间

             #0.0 ni               nice值调整时间

             #96.0 id            空闲时间

             #0.0 wa             等待io(输入输出)时间

             #1.5 hi               处理硬件中断时间

             #0.2 si               处理软件中断时间

             #0.0 st               被偷走的时间(vm虚拟机使用时间)


MiB Mem :物理内存

            #3662.6 total         总量

            #1837.2 free         空闲

            #1252.3 used        占用

            #573.2  buff/cache 缓存


MiB Swap: 交换分区用量

            #2161.8 avail Mem  可用 

 2.top命令的参数

top      -d     1        指定刷新频率1s

            -b               以批次方式显示

            -n     5       指定显示的批次数量 ,5次就结束

top内部指令

P     cpu排序

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

M    内存排序

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

T     累计占用cpu时间排序

小写L   关闭/开启uptime信息

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

关闭以后:

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

t      关闭/开启cpu&task

s     指定刷新频率

k     操作进程            #      k    回车   pid 回车  进程信息号   #

u     查看指定用户进程

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

3.进程优先级

系统是多任务多用户的操作模式 ,任务的重要性是有区分的

如何确定任务的重要性--------优先级

 如何确定任务的重要性:

<1>"优先级"范围:0——139

  1. 值越小 优先级越高
  2. 内核自控优先级范围:0-99
  3. 用户可控优先级:100-139 叫做nice

          nice                          -20-19     -20对应100  19对应139

<2>优先级查看

ps ax -o pid,nice,comm 

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

<3> 指定某个优先级开启进程

  1. nice -n 优先级数字 +进程名称
  2. nice -n   -5       vim &                       ##开启vim并且指定程序优先级为-5

<4>更改进程优先级

  1. reince -n 优先级数字 +进程pid
  2. renice  -n  -5   524                           ##改变524进程的优先级为-5

 <5>进程状态的表示

  1. S                   #sleeping
  2. <                   #优先级高于平均水平
  3. s                   #顶级进程
  4. T                   #stop
  5. N                   #优先级低于平均水平
  6. R                   #running
  7. +                    #运行在前台

四、进程前后台调用

  1. <ctrl>+<z>                 ##把占用shell的进程打入后台挂起
  2. bg    jobsnum           ##把后台挂起的进程运行起来
  3. fg     jobsnum           ##把后台进程调回前台
  4. &                                ##运行进程在后台
  5. jobs                           ##查看当前shell中在后台的所有工作
    Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

五、进程信息号

1.进程信号

1                   #重新加载系统配置文件(source)

2                   #清空内存中的进程数据

3                   #清空内存中的鼠标(ctrl+)

9                   #强行结束进程(不能被阻塞)

15                 #正常关闭进程(会被阻塞)

18                 #运行被暂停的进程

19                 #暂停进程(不会被阻塞)

20                 #暂停进程(会被阻塞的)

2.进程信号控制工具 

1.kill         进程信号          pid

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

2.killall     进程信号          进程名字

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号

3.pkill -u username -信号

Linux中的进程管理(1) ---ps、pgrep、pidof和top的使用,进程优先级、前后台调用以及进程信息号