• Linux基础-进程管理


    ‍‍🏡博客主页:  Passerby_Wang的博客_CSDN博客-系统运维,云计算,Git学习笔记领域博主

    🌐所属专栏:『Linux基础

    🌌上期文章: Linux基础-磁盘阵列RAID

    📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 关注、点赞、收藏、评论。

    目录

    一、概述

    二、查询进程

    1、pstree命令

    1)功能

    2)格式

    3)常用命令选项

    4)实例

    2、ps命令

    1)功能

    2)格式

    3)常用命令选项(组合)

    4)实例

    3、top命令

    1)功能

    2)常用格式

    3)实例

    4、pgrep命令

    1)功能

    2)格式

    3)常用命令选项

    4)实例 

    三、进程的前后台调度

    1、前台启动

    2、后台启动

    3、进程的前后台调度

    1)Ctrl + z

    2)jobs 命令

    3)fg 命令 

    4)bg 命令

    四、杀死进程

    1、Ctrl+c

    1)功能

    2)实例

    2、kill命令

    1)功能

    2)常用格式

    3)实例

    3、killall命令

    1)功能

    2)常用格式

    3)实例

    4、pkill 命令

    1)功能

    2)常用格式

    3)实例


    一、概述

            进程是指一个内存中运行的运用程序,每一个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序,是一个进程从创建到消亡的过程。

    二、查询进程

    1、pstree命令

    1)功能

    pstree(Processes Tree) 查看进程树

    2)格式

    pstree [选项] [PID或用户名]

    3)常用命令选项

    -a:显示完整的命令行

    -p:列出对应PID编号

    -h:列出树状图时,特别标明现在执行的程序

    -l:采用长列格式显示树状图

    -u:显示用户名称

    -V:显示版本信息

    4)实例

    1. [root@wangwu ~]# pstree -a
    2. systemd --switched-root --system --deserialize 22
    3.   ├─ModemManager
    4.   │   └─2*[{ModemManager}]
    5.   ├─NetworkManager --no-daemon
    6.   │   ├─dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf...
    7.   │   └─2*[{NetworkManager}]
    8.   ├─VGAuthService -s
    9. ... ... ...
    1. [root@wangwu ~]# pstree -p
    2. systemd(1)─┬─ModemManager(725)─┬─{ModemManager}(739)
    3.            │                   └─{ModemManager}(750)
    4.            ├─NetworkManager(870)─┬─dhclient(23845)
    5.            │                     ├─{NetworkManager}(906)
    6.            │                     ├─{NetworkManager}(908)
    7.            │                     └─{NetworkManager}(28842)
    8.            ├─VGAuthService(757)
    9. ... ... ...
    1. [root@wangwu ~]# pstree -u
    2. systemd─┬─ModemManager───2*[{ModemManager}]
    3.         ├─NetworkManager─┬─dhclient
    4.         │                └─2*[{NetworkManager}]
    5.         ├─VGAuthService
    6. ... ... ...

    2、ps命令

    1)功能

    ps(Processes Snapshot) 查看进程

    2)格式

    ps [选项]

    3)常用命令选项(组合)

    aux:

    a:显示当前终端所有进程

    u:以用户格式输出

    x:当前用户在所有终端下的进程

    -elf:

    -e:显示系统内所有进程

    -l:以长格式输出信息

    -f:包括最完整的进程信息

    4)实例

    ps aux 列出正在运行的所有进程

    1. [root@wangwu ~]# ps -aux
    2. 用户 进程ID %CPU % 内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令
    3. USER  PID  %CPU % MEM   VSZ     RSS   TTY  STAT   START   TIME  COMMAND
    4. root    1   0.0     0.3  193788   3276   ?      Ss   09:43   0:02  /usr/lib/systemd/
    5. root    2   0.0     0.0      0     0     ?      S    09:43   0:00  [kthreadd]
    6. root    4   0.0     0.0      0     0     ?      S<   09:43   0:00  [kworker/0:0H]
    7. root    6   0.0     0.0      0     0     ?      S    09:43   0:01  [ksoftirqd/0]

      

    ps -elf 列出正在运行的所有进程

    1. [root@wangwu ~]# ps -elf
    2. F S UID   PID  PPID C  PRI  NI ADDR SZ   WCHAN         STIME TTY    IME CMD
    3. 4 S root   1     0  0  80   0 -  48447  ep_pol 09:43 ?     00:00:03  /usr/lib/systemd/
    4. 1 S root   2     0  0  80   0 -     0   kthrea 09:43 ?      00:00:00  [kthreadd]
    5. 1 S root   4     2  0  60  -20 -    0   worker 09:43 ?      00:00:00  [kworker/0:0H]
    6. 1 S root    6     2  0  80   0 -     0  smpboo 09:43 ?      00:00:02  [ksoftirqd/0]
    7. #PPID:父进程的PID号
    8. #PRI/NI:进程优先级,数值越小优先级越高

    3、top命令

    1)功能

    top 进程动态排名

    2)常用格式

    top [-d 刷新秒数] [-U 用户名]

    3)实例

    1. [root@wangwu ~]# top -d 3 -U root
    2. top - 15:30:41 up  4:54,  3 users,  load average: 0.03, 0.55, 4.94
    3. Tasks: 215 total,   3 running, 212 sleeping,   0 stopped,   0 zombie
    4. %Cpu(s):  1.7 us,  3.7 sy,  0.0 ni, 94.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    5. KiB Mem :   995640 total,    72628 free,   626060 used,   296952 buff/cache
    6. KiB Swap:  2097148 total,  1876988 free,   220160 used.   137220 avail Mem
    7.    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    8.  95182 root      20   0  162088   2348   1592 R  1.0  0.2   0:00.28 top
    9.  93658 root      20   0  113284   1604   1336 S  0.7  0.2   0:01.58 bash
    10.    399 root      20   0       0      0      0 R  0.3  0.0   0:20.93 xfsaild/dm-0
    11.  93649 root      20   0  165252   6172   4772 S  0.3  0.6   0:03.64 sshd
    12.      1 root      20   0  193788   4324   2392 S  0.0  0.4   0:21.92 systemd

    4、pgrep命令

    1)功能

    pgrep(Process Grep) 检索进程

    2)格式

    pgrep [选项]... 查询条件

    3)常用命令选项

    -l:输出进程名

    -U:检索指定用户的进程

    -x:精确匹配完整的进程名

    4)实例 

    1. [root@wangwu ~]# pgrep -l ftp  #列出名称包含为 ftp的进程信息
    2. 25610 sftp-server
    3. 93696 sftp-server
    4. [root@wangwu ~]# pgrep -lx sftp-server  #精准查找进程信息
    5. 93696 sftp-server
    1. [root@wangwu ~]# pgrep -l -U root #列出属于用户root的所有进程
    2. 1 systemd
    3. 2 kthreadd
    4. 4 kworker/0:0H
    5. 6 ksoftirqd/0
    6. 7 migration/0
    7. ... ... ...

    三、进程的前后台调度

    1、前台启动

    输入正常命令行,运行期间占用当前终端

    2、后台启动

    在命令行末尾添加“&”符号,不占用当前终端

    3、进程的前后台调度

    1)Ctrl + z

    功能

    挂起当前进程(暂停并转入后台)

    实例

    1. [root@wangwu ~]# top
    2. ... ... ...
    3. %Cpu(s):  1.3 us,  3.3 sy,  0.0 ni, 95.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    4. KiB Mem :   995640 total,    72680 free,   623704 used,   299256 buff/cache
    5. KiB Swap:  2097148 total,  1877244 free,   219904 used.   139704 avail Mem
    6.    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    7. 119964 root      20   0  162088   2328   1576 R  0.7  0.2   0:00.26 top
    8.    399 root      20   0       0      0      0 R  0.3  0.0   0:22.25 xfsaild/dm-0
    9.    758 root      20   0  320176   2108   1600 S  0.3  0.2   1:17.31 vmtoolsd
    10. ... ... ...
    11. Ctrl + z 组合键
    12. [1]+  Stopped                 top

    2)jobs 命令

    功能

    查看后台任务列表

    常用格式

    jobs [-l 列出进程的PID号]

    实例

    1. [root@wangwu ~]# jobs -l
    2. [1]- 119964 Stopped (signal)        top

    3)fg 命令 

    功能

    将后台任务恢复到前台运行

    常用格式

    fg [数字]

    实例

    1. [root@wangwu ~]# fg #缺省序号则为最近1个任务
    2. [root@wangwu ~]# top
    3. ... ... ...
    4. %Cpu(s):  1.3 us,  3.3 sy,  0.0 ni, 95.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    5. KiB Mem :   995640 total,    72680 free,   623704 used,   299256 buff/cache
    6. KiB Swap:  2097148 total,  1877244 free,   219904 used.   139704 avail Mem
    7.    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    8. 119964 root      20   0  162088   2328   1576 R  0.7  0.2   0:00.26 top
    9.    399 root      20   0       0      0      0 R  0.3  0.0   0:22.25 xfsaild/dm-0
    10.    758 root      20   0  320176   2108   1600 S  0.3  0.2   1:17.31 vmtoolsd
    11. ... ... ...

    4)bg 命令

    功能

    激活后台被挂起的任务

    常用格式

    bg [数字]

    实例

    1. [root@wangwu ~]# bg  #缺省序号则为最近1个任务
    2. [1]+ top &

    四、杀死进程

    1、Ctrl+c

    1)功能

    中断当前命令程序

    2)实例

    1. [root@wangwu ~]# vim /wangwu.txt
    2. Ctrl+c 组合键
    3. ^C

    2、kill命令

    1)功能

    kill 请求目标进程退出杀死进程)

    2)常用格式

    kill [-9 强制杀死进程] PID...

    3)实例

    1. [root@wangwu ~]# ps aux | grep top
    2. root       1975  0.0  0.2 162088  2324 pts/1    T    17:19   0:00 top
    3. root       2483  0.0  0.0 112812   976 pts/2    R+   17:21   0:00 grep --color=auto top
    4. root      25076  0.0  1.0 1039524 10012 ?     Sl   11:42   0:03 nautilus-desktop --force
    5. [root@wangwu ~]# kill -9 1975
    6. [root@wangwu ~]# ps aux | grep top
    7. root       3581  0.0  0.0 112812   680 pts/2    R+   17:24   0:00 grep --color=auto top
    8. root      25076  0.0  1.0 1039524 10012 ?     Sl   11:42   0:03 nautilus-desktop --force

    3、killall命令

    1)功能

    killall  结束同名的的所有进程

    2)常用格式

    killall [-9] 进程名...

    3)实例

    1. [root@wangwu ~]# ps aux | grep top
    2. root       4525  0.0  0.2 162088  2332 pts/1    T    17:27   0:00 top
    3. root       5999  0.3  0.2 162088  2332 pts/1    T    17:31   0:00 top
    4. root       6018  0.1  0.2 162088  2328 pts/1    T    17:31   0:00 top
    5. root       6071  0.0  0.0 112812   976 pts/2    R+   17:31   0:00 grep --color=auto top
    6. root      25076  0.0  1.0 1039524 10012 ?     Sl   11:42   0:03 nautilus-desktop --force
    7. [root@wangwu ~]# killall -9 top
    8. [root@wangwu ~]# ps aux | grep top
    9. root       6194  0.0  0.0 112812   976 pts/2    R+   17:31   0:00 grep --color=auto top
    10. root      25076  0.0  1.0 1039524 10012 ?     Sl   11:42   0:03 nautilus-desktop --force

    4、pkill 命令

    1)功能

    pkill 按进程名来杀死指定进程杀死指定用户的所有进程

    2)常用格式

    pkill  [-9强制杀死进程]  [-U 用户名]

    3)实例

    [root@wangwu ~]# pkill -9 -U wangwu #踢出用户(杀死用户所有进程)

  • 相关阅读:
    【torch.nn.init】初始化参数方法解读
    PHP is_file 和file_exists的区别
    vue中watch和computed的使用案例:
    Mendelay-文献管理软件使用教程
    golang之context实用记录
    【深入理解Kotlin协程】Google的工程师们是这样理解Flow的?
    docker安装postgresSQL和设置自定义数据目录
    【仿真动画】双机器人协作完成一个任务(切割)
    详解Java的八种基本数据类型
    Echarts-3D柱状图
  • 原文地址:https://blog.csdn.net/Passerby_Wang/article/details/126566894