zoukankan      html  css  js  c++  java
  • Linux---进程管理

    进程管理负责管理和控制所有的动态过程和资源;文件系统负责管理所有的静态信息和资源。Linux进程分为两大类:系统进程和用户进程

    1. 进程的属性

    Linux内核中一些重要的进程信息包括:

    • 进程的内存地址
    • 进程当前的状态
    • 进程正在使用的资源
    • 进程的优先级
    • 进程的属主

    进程的几个常用参数:

    • PID: 进程号
    • PPID:父进程PID
    • UID:真实用户ID (进程创建者的用户ID号)
    • GID:真实组ID(进程创建者所属组的ID号)
    • 谦让度和优先级:优先级高的进程更早被处理。谦让度和优先级是一对相反的概念,高谦让度意味着低优先级,允许用户设置谦让度

    2. 监视进程 ps

     ps aux 用于显示当前系统上运行的所有进程的信息

    wangzhengchao@ubuntu:~$ ps aux
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.1 185428  4836 ?        Ss   08:42   0:01 /sbin/init splash
    root         2  0.0  0.0      0     0 ?        S    08:42   0:00 [kthreadd]
    root         4  0.0  0.0      0     0 ?        I<   08:42   0:00 [kworker/0:0H]
    root         6  0.0  0.0      0     0 ?        I<   08:42   0:00 [mm_percpu_wq]
    root         7  0.0  0.0      0     0 ?        S    08:42   0:00 [ksoftirqd/0]
    ...
    guest-p+ 31092  0.0  0.1 448660  7840 ?        Sl   12:56   0:02 /usr/lib/x86_64-linux-gnu/deja-dup/deja-dup
    wangzhe+ 31178  0.0  0.9 1624952 38048 ?       Sl   13:01   0:00 /usr/lib/firefox/firefox -contentproc -chil
    root     31357  0.0  0.0      0     0 ?        I    13:06   0:00 [kworker/3:1]
    wangzhe+ 31422  0.1  0.8 638968 31984 ?        Sl   13:08   0:08 /usr/lib/gnome-terminal/gnome-terminal-serv
    wangzhe+ 31428  0.0  0.1  29748  5120 pts/22   Ss   13:08   0:00 bash

    各字段含义:

    USER 进程创建者的用户名
    PID  
    进程的ID
    %CPU  
    进程占用的CPU百分比
    %MEM 
    占用内存的百分比
    VSZ    
    该进程使用的虚拟内存量(KB)
    RSS    
    内存中页的数量
    TTY    
    进程所在终端的ID号
    START  
    该进程的启动时间
    TIME     
    该进程实际使用CPU的时间
    COMMAND 
    命令的名称和参数
    STAT 状态位:
    D 休眠状态(不可唤醒)
    R 正在运行中
    S 休眠状态(可唤醒)
    T 停止或被追踪;
    Z 僵尸进程;

    附加标志位:
    < 优先级高的进程
    N 优先级较低的进程
    L 有些页被锁进内存
    s 进程的领导者(在它之下有子进程

     ps lax 用可以提供父进程ID(PPID)以及谦让度(NI)

    wangzhengchao@ubuntu:~$ ps lax
    F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
    4     0     1     0  20   0 185428  4836 -      Ss   ?          0:01 /sbin/init splash
    1     0     2     0  20   0      0     0 -      S    ?          0:00 [kthreadd]
    1     0     4     2   0 -20      0     0 -      I<   ?          0:00 [kworker/0:0H]
    ...
    5     0 31357     2  20   0      0     0 -      I    ?          0:00 [kworker/3:1]
    0  1000 31422  1143  20   0 638968 31984 poll_s Sl   ?          0:09 /usr/lib/gnome-terminal/gnome-terminal-
    0  1000 31428 31422  20   0  29748  5120 wait   Ss   pts/22     0:00 bash

    3. 及时跟踪进程信息 top

     top 命令能够及时跟踪进程信息,并在默认情况下,每10s更新一次,使用CPU最多的程序会排在最前面,q退出监视。

    wangzhengchao@ubuntu:~$ top
    
    top - 14:49:37 up  6:06,  4 users,  load average: 0.28, 0.37, 0.49
    Tasks: 424 total,   1 running, 369 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  1.0 us,  0.8 sy,  0.0 ni, 98.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  3939428 total,   266684 free,  2710988 used,   961756 buff/cache
    KiB Swap:  3998716 total,  3320572 free,   678144 used.   421936 avail Mem 
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                 
     1006 root      20   0  417636  77624  58456 S   2.3  2.0   9:02.20 Xorg                                    
    26117 wangzhe+  20   0 2072900 261272  97860 S   2.3  6.6   8:45.22 Web Content                             
     2406 wangzhe+  20   0 2714196 281312  89740 S   1.7  7.1  19:02.00 firefox                                 
    31422 wangzhe+  20   0  638968  32092  21088 S   1.7  0.8   0:11.80 gnome-terminal-                         
        8 root      20   0       0      0      0 I   0.3  0.0   0:32.33 rcu_sched 

    4. 查看占用文件的进程 lsof

     lsof filename  用于查看占用文件filename的进程,若省略filename则显示所有打开文件的进程

    5. 向进程发出信号 kill

     kill [-signal] pid  表示向进程号为pid的进程发送signal信号

    常用的信号:

    信号编号 信号名 描述 执行操作(默认)
    0 EXIT 程序退出时收到的信号 终止
    1 HUP 挂起 终止
    2 INT 中断 终止
    3 QUIT 退出 终止
    9 KILL 杀死 终止
    11 SEGV 段错误 终止
    15 TERM 软件终止 终止

    注意:

    • 普通用户只能终止自己的进程,root用户可以终止任何进程。
    • kill 命令不一定能够终止一个进程。kill只是向进程发出信号,但是进程可以选择封锁或者忽略。但是使用指令 sudo kill -KILL pid 一般可以保证终止进程。
  • 相关阅读:
    BZOJ 3506 机械排序臂 splay
    BZOJ 2843 LCT
    BZOJ 3669 魔法森林
    BZOJ 2049 LCT
    BZOJ 3223 文艺平衡树 splay
    BZOJ 1433 假期的宿舍 二分图匹配
    BZOJ 1051 受欢迎的牛 强连通块
    BZOJ 1503 郁闷的出纳员 treap
    BZOJ 1096 ZJOI2007 仓库设计 斜率优化dp
    BZOJ 1396: 识别子串( 后缀数组 + 线段树 )
  • 原文地址:https://www.cnblogs.com/iwangzhengchao/p/9909303.html
Copyright © 2011-2022 走看看