静态查看进程信息 -- 基于 ps 命令实现

1、简介

    目前 可以 通过 很多种方式 查看 系统进程,top之类的 工具 可以 动态 的获取 进程信息,今天 介绍 静态 获取 进程信息的 工具 -- ps(当然,静态 获取 进程信息 这类工具 肯定 不止 ps,还有 pstree...)
    

1.1 进程状态

###
###  进程状态 可以 是单个状态,也可以是 多个 状态的组合,例如 Ss、S<
###
## R  --  Running.运行中
## S  --  Interruptible Sleep.等待调用
## D  --  Uninterruptible Sleep.不可中断睡眠
## T  --  Stoped.暂停或者跟踪状态
## X  --  Dead.即将被撤销
## Z  --  Zombie.僵尸进程
## W  --  Paging.内存交换
## N  --  优先级低的进程
## <  --  优先级高的进程
## s  --  进程的领导者
## L  --  锁定状态
## l  --  多线程状态
## +  --  前台进程

    

1.2 参数信息(不断完善)

## -l  --  长格式输出(与 -j 参数 不能同时使用)
## -a  --  -a 代表 all
## -x  --  x参数会显示没有控制终端的进程
## -u  --  查看特定用户进程
## -j  --  用任务格式来显示进程(与 -l 参数 不能同时使用)
## -f  --  用树形格式来显示进程
## -o  --  -o 参数控制输出
## -C  --  显示指定进程

    

2、ps -l 执行分析

2.1 简介

    ps -l 显示自己这次登陆的 bash 相关的进程信息罗列出来
    

2.2 执行

# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1003 195824 195823  0  80   0 -  5616 wait   pts/1    00:00:00 bash
0 R  1003 232370 195824  0  80   0 -  2205 -      pts/1    00:00:00 ps

    

2.3 结果分析

## F  -- 进程的标志(process flags),当 flags 值为 1 则表示此子程序只是 fork 但没有执行 exec,为 4 表示此程序使用超级管理员 root 权限
## S  --  进程的状态
## UID  --  进程的拥有用户
## PID  --  进程的 ID
## PPID  --  其父进程的 PID
## C  --  CPU使用率,单位为百分比
## PRI  --  优先级(对应 top PR;PR、NI参见 "Linux 操作命令 ps -- 进程查看" 一文)
## NI  --  进程的 NICE 值(优先级)
## ADDR  --  ADDR是kernel function,指出该程序在内存的哪个部分,如果是个running的程序,一般就会显示 "-"
## SZ  --  SZ代表程序用掉多少内存
## WCHAN  --  WCHAN表示目前程序是否运行中,同样的,若为-表示正在运行中
## TTY  --  终端 ID
## TIME  --  进程消耗CPU的时间(运行时长)
## CMD  --  命令的名称和参数

    

3、ps -aux 执行分析

3.1 简介

    罗列出所有的进程信息
    

3.2 执行

# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0  33784  4268 ?        Ss   Mar06   0:03 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Mar06   0:00 [kthreadd]
... ...
root          3  0.0  0.0      0     0 ?        S    Mar06   2:28 [ksoftirqd/0]

3.3 结果分析

## USER  --  进程用户用户名
## PID  --  进程的 ID
## %CPU  --  进程占用的 CPU 百分比
## %MEM  --  占用内存的百分比
## VSZ  --  进程使用虚拟内存大小
## RSS  --  驻留内存中页的大小
## TTY  --  终端 ID
## STAT  --  进程的状态
## START  --  启动进程的时间
## TIME  --  实际使用CPU运行的时间
## COMMAND  --  命令的名称和参数

    

4、ps -axjf 执行分析

4.1 简介

    ps -axjf 连同部分的进程呈树状显示出来
    

4.2 执行

# ps -axjf
  PPID    PID   PGID    SID TTY       TPGID STAT   UID   TIME COMMAND
     0      2      0      0 ?            -1 S        0   0:00 [kthreadd]
     2      3      0      0 ?            -1 S        0   2:28  \_ [ksoftirqd/0]
     ... ...
     2 237046      0      0 ?            -1 S        0   0:00  \_ [kworker/u480:1]
     0      1      1      1 ?            -1 Ss       0   0:03 /sbin/init
     ... ...
     1    902    902    902 ?            -1 Ss       0   0:04 smbd -F
   902   1160    902    902 ?            -1 S        0   0:00  \_ smbd -F
   902   1271    902    902 ?            -1 S        0   0:08  \_ smbd -F

4.3 结果分析

 ## PPID  --  其父进程的 PID
  ## PID  --  其父进程的 PID
  ## PGID  --  进程组 PID
  ## SID  --  session 的 ID
  ## TTY  --  终端 ID
  ## TPGID  --  前台进程组的 ID;TPGID栏写着-1的都是没有控制终端的进程,也就是守护进程
  ## STAT  --  启动进程的时间
  ## UID  --  进程的拥有用户
  ## TIME  --  实际使用CPU运行的时间
  ## COMMAND  --  命令的名称和参数

5、ps -afxo 执行分析

5.1 简介

    指定 显示的 信息
    

5.2 执行

## 只显示 进程的 用户信息
## ps -axf -o user
# ps -afxo user

    

6、ps -C 执行分析

6.1 简介

    指定 显示的 进程
    

6.2 执行

## 只显示 指定的进程
# ps -C smbd
   PID TTY          TIME CMD
   902 ?        00:00:04 smbd
  1160 ?        00:00:00 smbd
  1271 ?        00:00:08 smbd

# ps -C smbd -jf
UID         PID   PPID   PGID    SID  C STIME TTY          TIME CMD
root        902      1    902    902  0 Mar06 ?        00:00:04 smbd -F
root       1160    902    902    902  0 Mar06 ?        00:00:00 smbd -F
root       1271    902    902    902  0 Mar06 ?        00:00:08 smbd -F

# ps -C smbd -lf
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root        902      1  0  80   0 - 79182 -      Mar06 ?        00:00:04 smbd -F
1 S root       1160    902  0  80   0 - 77195 -      Mar06 ?        00:00:00 smbd -F
5 S root       1271    902  0  80   0 - 79182 -      Mar06 ?        00:00:08 smbd -F  

原文地址:https://blog.51cto.com/11495268/2386280

时间: 2024-10-10 07:26:35

静态查看进程信息 -- 基于 ps 命令实现的相关文章

动态查看进程信息 -- 基于 top 命令工具(祝大家五一节快乐!)

个人博客首页(点击查看详细信息)   1.简介     系统 服务器 负载.CPU.内存.进程 等信息 反应 当前服务的运行状态,top 可以获取 这些 相关信息(当然,除了 top 之外 还有 很多 工具可以获取这些 信息 -- 例如 htop.iotop ...,本文 主要介绍 top)     2.执行命令 ## 命令 很简单,直接 命令行 输入 top 按回车之后,弹出一个 交互界面 # top      3.结果 分析     top 结果我们 从上往下,按行 依次分析     3.1

20181129linux中静态查看进程PS

静态查看进程PS 一.查看进程process静态查看进程 1.USER:运行进程的用户2.PID:进程ID3.%CPU:CPU占用率4.%MEM:内存占用率5.VSZ:占用虚拟内存6.RSS:占用实际内存 驻留内存7.TIY:进程运行的终端8.STAT:进程状态R 运行S 可中断睡眠sleepD 不可中断睡眠(usually IO)T 停止的进程Z 僵尸进程X 死掉的进程9.START:进程的启动时间10.TIME:进程占用CPU的总时间11.COMMAND:进程文件,进程名例1.按照CPU使用

查看进程信息

在linux下查看进程用 ps -ef|grep XXX 通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等.这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看. ls -l /proc/PID cwd符号链接的是进程运行目录: exe符号连接就是执行程序的绝对路径:

Centos 查看进程的几条命令

1. ps -ef | grep java 表示查看所有进程里 CMD 是 java 的进程信息 2. ps -aux | grep java -aux 显示所有状态 3. kill -9 [PID] -9 表示强迫进程立即停止 4. lsof -i:8080 查看8080端口占用情况 其它: 1. netstat netstat -nat | grep 3306 2. lsof lsof -n -P -i TCP -s TCP:LISTEN -n 表示主机以ip地址显示 -P 表示端口以数字形

ubuntu 查看进程信息

查看进程信息 ps ps -aux 查看所有进程,每行一个程序 top 显示当前运行程序 kill 98 (98为PID号,) kill -9 98 (强制杀死98) ps -e Linux如何查看端口1.lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000# lsof -i:8000COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMElwfs 22065 root 6u IPv4 439505

Linux 查看硬件信息的一些命令

dmidecode -t 1 #查看主机时物理主机还是虚拟主机dmidecode -t 2 #查看主板信息dmidecode -t 16 #查看内存信息dmidecode -P -A5 "Memory Device" | grep Size #查看当前内存数和插槽数dmidecode -t 17 #查看内存条数dmidecode -t 4 #查看CPU信息 原文地址:https://blog.51cto.com/3037673/2443922

ps aux 查看进程信息

[[email protected] Desktop]# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.3 192096 7456 ? Ss 03:03 0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 21root 2 0.0 0.0 0 0 ? S 03:03 0:00 [kthreadd] [[email

&lt;p&gt;1、查询端口号占用,根据端口查看进程信息&lt;/p&gt;

2017年6月份的时候,我就着手在公司推广git,首先我自己尝试搭建了GitLab来管理代码,并且通过以下博客记录了GitLab的搭建,以及GitLab备份,GitLab升级等事情. git学习-->在CenterOS系统上安装GitLab并自定义域名访问GitLab管理页面 git学习-->如何汉化GitLab? (转)git学习-->Git 分支管理最佳实践 git学习--> Gitlab如何进行备份恢复与迁移? git学习--> 解决Gitlab 版本升级之后,发送 m

Linux 进程信息收集与行为分析

0x00 分析方法 1)基本信息收集 对于一个进程的分析,首先可以通过ps,lsof等命令了解程序的一些基本信息.这个阶段可以搜集进程开放了哪些端口,使用了哪些句柄,程序的运行状态. 2)获取程序组成二进制文件 下一阶段可以思考程序由哪些程序文件组成,通过ps命令可以找到程序的启动文件路径,通过进程的maps文件,可以查看进程加载了哪些so文件. 这一步可以得到程序的所有二进制代码,作为IDA与gdb的分析输入. 3)数据作为切入点,数据流跟踪 进程信息的搜集与程序代码分析都比较零散,无法很好的