zoukankan      html  css  js  c++  java
  • centos8平台使用pstree查看进程树

    一,pstree用途

    Linux pstree命令将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 systemd 这个基本行程为根 (root)

    说明:centos6及更旧版本为init为root进程

    说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

             对应的源码可以访问这里获取: https://github.com/liuhongdi/

     说明:作者:刘宏缔 邮箱: 371125307@qq.com

    二,pstree所属的包

    1,查询所属的包

    [root@blog ~]# whereis pstree
    pstree: /usr/bin/pstree /usr/bin/pstree.x11 /usr/share/man/man1/pstree.1.gz
    
    [root@blog ~]# rpm -qf /usr/bin/pstree
    psmisc-23.1-3.el8.x86_64

    2,如果找不到pstree命令,可以用yum安装

    [root@blog ~]# yum install psmisc

    三,查看pstree的版本与帮助

    1,查看版本

    [root@blog ~]# pstree --version
    pstree (PSmisc) 23.1
    Copyright (C) 1993-2017 Werner Almesberger and Craig Small

    2,查看帮助

    [root@blog ~]# pstree --help 

    四,例子一:查看进程树

    [root@blog ~]# pstree
    systemd─┬─AliYunDun───25*[{AliYunDun}]
            ├─AliYunDunUpdate───3*[{AliYunDunUpdate}]
    ...

    说明:子进程有多少个,会用数字加*标出

    五,例子二:显示每个进程的pid

    [root@blog ~]# pstree -p
    systemd(1)─┬─AliYunDun(30330)─┬─{AliYunDun}(30331)
               │                  ├─{AliYunDun}(30332)
               │                  ├─{AliYunDun}(30343)
               │                  ├─{AliYunDun}(30344)
               │                  ├─{AliYunDun}(30345)
               │                  ├─{AliYunDun}(30346)
               │                  ├─{AliYunDun}(30347)
               │                  ├─{AliYunDun}(30348)
               │                  ├─{AliYunDun}(30349)
               │                  ├─{AliYunDun}(30350)
               │                  ├─{AliYunDun}(30351)
               │                  ├─{AliYunDun}(30352)
               │                  ├─{AliYunDun}(30353)
               │                  ├─{AliYunDun}(30354)
               │                  ├─{AliYunDun}(30355)
               │                  ├─{AliYunDun}(30356)
               │                  ├─{AliYunDun}(30357)
               │                  ├─{AliYunDun}(30358)
               │                  ├─{AliYunDun}(30359)
               │                  ├─{AliYunDun}(30360)
               │                  ├─{AliYunDun}(30361)
               │                  ├─{AliYunDun}(30362)
               │                  ├─{AliYunDun}(30363)
               │                  ├─{AliYunDun}(17188)
               │                  └─{AliYunDun}(17367)
               ├─AliYunDunUpdate(30315)─┬─{AliYunDunUpdate}(30316)
               │                        ├─{AliYunDunUpdate}(30317)
               │                        └─{AliYunDunUpdate}(30321) 

    说明:-p:同时列出每个进程的PID

    六,例子三:显示某个进程及其子进程:

    [root@blog ~]# pstree -p 30315
    AliYunDunUpdate(30315)─┬─{AliYunDunUpdate}(30316)
                           ├─{AliYunDunUpdate}(30317)
                           └─{AliYunDunUpdate}(30321)

    说明:显示30315及其子进程,并显示pid

    七,例子四:查看mysql用户的进程

    [root@blog ~]# pstree mysql
    mysqld_safe───mysqld───45*[{mysqld}]

    八,例子五:显示指定进程的父进程:

    # -a 表示输出命令行选项

    # p表PID

    # s表示指定进程的父进程

    [root@blog ~]# pstree -aps 8244
    systemd,1 --system --deserialize 20
      └─redis-server,8240
          └─{redis-server},8244

    九,例子六:显示命令行参数

    # -t表示显示线程

    # -a表示显示命令行参数

    # -p表示显示pid

    [root@blog ~]# pstree -a -t -p 17246
    mysqld_safe,17246 /usr/local/soft/mysql/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/var/mysqld.pid
      └─mysqld,17700 --basedir=/usr/local/soft/mysql --datadir=/data/mysql/data --plugin-dir=/usr/local/soft/mysql/lib/plugin--log-error=/data/mysql/log/mysqld.log
          ├─{mysqld},17710
          ├─{mysqld},17711
          ├─{mysqld},17712
          ├─{mysqld},17713
          ├─{mysqld},17714
          ├─{mysqld},17715
          ├─{mysqld},17716
          ├─{mysqld},17717
          ├─{mysqld},17718
          ├─{mysqld},17719
          ├─{mysqld},17720
          ├─{mysqld},17721
          ├─{mysqld},17722
          ├─{mysqld},17723
          ├─{mysqld},17724
          ├─{mysqld},17725
          ├─{mysqld},17726
          ├─{mysqld},17727
          ├─{mysqld},17728
          ├─{mysqld},17729
          ├─{mysqld},17730
          ├─{mysqld},17731
          ├─{mysqld},17732
          ├─{mysqld},17733
          ├─{mysqld},17734
          ├─{mysqld},17735
          ├─{mysqld},17736
          ├─{mysqld},17739
          ├─{mysqld},17740
          ├─{mysqld},17743
          ├─{mysqld},17744
          ├─{mysqld},17745
          ├─{mysqld},17746
          ├─{mysqld},17747
          ├─{mysqld},17748
          ├─{mysqld},17754
          ├─{mysqld},17755
          ├─{mysqld},17756
          ├─{mysqld},17759
          ├─{mysqld},17760
          ├─{mysqld},29999
          ├─{mysqld},24718
          ├─{mysqld},24719
          ├─{xpl_worker0},17737
          └─{xpl_worker1},17738

    十,查看centos版本: 

    [root@blog ~]$ cat /etc/redhat-release
    CentOS Linux release 8.0.1905 (Core) 
  • 相关阅读:
    国货之光业务增长背后的技术支持
    减少运维工作量,如何通过 ROS 轻松实现资源编排新方式
    我在阿里写代码学会的六件事
    SpringCloud 应用在 Kubernetes 上的最佳实践 — 诊断(线上联调)
    视频需求超平常数 10 倍,却节省了 60% 的 IT 成本投入是一种什么样的体验?
    从单体到混乱的微服务,阿里云托管式服务网格是如何诞生的?
    阿里张磊:如何构建以应用为中心的“Kubernetes”?(内含 QA 整理)
    python之深度学习-模拟异步操作(队列)
    python之深度学习-队列处理数据(同步)
    python深度学习-tensorflow实现一个线性回归的案例
  • 原文地址:https://www.cnblogs.com/architectforest/p/12636381.html
Copyright © 2011-2022 走看看