linux(三十一)系统信息命令ps查看系统进程

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: linux(三十一)系统信息命令ps查看系统进程

Linux 查看系统进程命令ps,这个命令很重要。有点类似于windows的任务管理器的意思。


ps命令用来列出系统中当前运行的那些进程。


ps命令列出的是当前那些进程的快照。

 

就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。

 

1:参数


a  显示所有进程


-a 显示同一终端下的所有程序


-A 显示所有进程


c  显示进程的真实名称


-N 反向选择


-e 等于“-A”


e  显示环境变量


f  显示程序间的关系


-H 显示树状结构


r  显示当前终端的进程


T  显示当前终端的所有程序


u  指定用户的所有进程


-au 显示较详细的资讯


-aux 显示所有包含其他使用者的行程


-C<命令> 列出指定命令的状况


--lines<行数> 每页显示的行数


--width<字符数> 每页显示的字符数


--help 显示帮助信息


--version 显示版本显示

 

Ps的参数比较多,这里基本上就是常用的参数。

 

2:示例


(1):显示所有当前进程

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     1:37 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    2 ?        S      0:00 [kthreadd]
    4 ?        S<     0:00 [kworker/0:0H]
    5 ?        S      0:07 [kworker/u2:0]
    6 ?        S      0:05 [ksoftirqd/0]
    7 ?        S      0:00 [migration/0]
    8 ?        S      0:00 [rcu_bh]
    9 ?        R      2:25 [rcu_sched]
   10 ?        S<     0:00 [lru-add-drain]
   11 ?        S      0:09 [watchdog/0]
   13 ?        S      0:00 [kdevtmpfs]
   14 ?        S<     0:00 [netns]
   15 ?        S      0:00 [khungtaskd]
   16 ?        S<     0:00 [writeback]
   17 ?        S<     0:00 [kintegrityd]
 …………………………………………………………

(2):根据用户过滤进程


在需要查看特定用户进程的情况下,我们可以使用 -u 参数。比如我们要查看用户apache的进程,可以通过下面的命令:

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -u apache
  PID TTY          TIME CMD
  990 ?        00:00:07 php-fpm
  991 ?        00:00:07 php-fpm
  992 ?        00:00:09 php-fpm
  993 ?        00:00:08 php-fpm
  994 ?        00:00:07 php-fpm
 1170 ?        00:00:09 php-fpm
 1202 ?        00:00:08 php-fpm

 

(3):通过cpu和内存使用来过滤进程

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  51728  3956 ?        Ss   Aug12   1:37 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Aug12   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   Aug12   0:00 [kworker/0:0H]
root         5  0.0  0.0      0     0 ?        S    Aug12   0:07 [kworker/u2:0]
root         6  0.0  0.0      0     0 ?        S    Aug12   0:05 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S    Aug12   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Aug12   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    Aug12   2:25 [rcu_sched]
…………………………………………………………

 

(4):查找具体进程


我们来查找nginx的进程

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -aux | grep nginx
root      8709  0.0  0.0  46604  1208 ?        Ss   Aug14   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx     8710  0.0  0.1  47600  2940 ?        S    Aug14   0:01 nginx: worker process
root     22387  0.0  0.0 112812   968 pts/0    R+   16:51   0:00 grep --color=auto nginx
**
**

(5):通过进程名和PID过滤


我们来查找nginx

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -C nginx
  PID TTY          TIME CMD
 8709 ?        00:00:00 nginx
 8710 ?        00:00:01 nginx

 

我们查看详细信息:

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -f -C nginx
UID        PID  PPID  C STIME TTY          TIME CMD
root      8709     1  0 Aug14 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx     8710  8709  0 Aug14 ?        00:00:01 nginx: worker process

(6):根据线程来过滤进程

[root@iZuf60ynur81p6k0ysvtneZ /]#  ps -L 8710
  PID   LWP TTY      STAT   TIME COMMAND
 8710  8710 ?        S      0:01 nginx: worker process

(7):树形显示进程

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -axjf
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
    1   852   852   852 ?           -1 Ssl    995  15:56 /usr/sbin/mysqld --basedir=/usr
    1  1042  1042  1042 ?           -1 Ss       0   0:00 /usr/sbin/sshd -D
 1042 20537 20537 20537 ?           -1 Ss       0   0:00  _ sshd: root@pts/0
20537 20539 20539 20539 pts/0    24360 Ss       0   0:00      _ -bash
20539 22155 22154 20539 pts/0    24360 T        0   0:00          _ less
20539 22297 22296 20539 pts/0    24360 T        0   0:00          _ less
20539 24360 24360 20539 pts/0    24360 R+       0   0:00          _ ps -axjf
    1  8709  8709  8709 ?           -1 Ss       0   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
 8709  8710  8709  8709 ?           -1 S      997   0:01  _ nginx: worker process
    1 10039 10039 10039 ?           -1 Ssl      0  79:39 /usr/sbin/aliyun-service
    1  5599  5599  5599 ?           -1 S<sl     0   4:38 /usr/local/aegis/aegis_update/AliYunDunUpdate
    1  5644  5644  5644 ?           -1 S<sl     0  78:15 /usr/local/aegis/aegis_client/aegis_10_85/AliYunDun

进程显示树形还有另一个命令pstree

[root@iZuf60ynur81p6k0ysvtneZ /]# pstree
systemd─┬─AliYunDun───22*[{AliYunDun}]
        ├─AliYunDunUpdate───3*[{AliYunDunUpdate}]
        ├─2*[agetty]
        ├─aliyun-service───2*[{aliyun-service}]
        ├─atd
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─dhclient
        ├─mysqld───29*[{mysqld}]
        ├─nginx───nginx
        ├─php-fpm───7*[php-fpm]
        ├─polkitd───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash─┬─2*[less]
        │                    └─pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]

 

(9):显示安全信息


如果想要查看现在有谁登入了你的服务器。可以使用ps命令加上相关参数:

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -eo pid,user,args
  PID USER     COMMAND
  471 polkitd  /usr/lib/polkit-1/polkitd --no-debug
  472 dbus     /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
  487 root     /usr/lib/systemd/systemd-logind
  498 chrony   /usr/sbin/chronyd
  504 root     /usr/sbin/atd -f
  512 root     /usr/sbin/crond -n
  990 apache   php-fpm: pool www
  991 apache   php-fpm: pool www
  992 apache   php-fpm: pool www
  993 apache   php-fpm: pool www
  994 apache   php-fpm: pool www
 1042 root     /usr/sbin/sshd -D
 1170 apache   php-fpm: pool www
 1202 apache   php-fpm: pool www
8710 nginx    nginx: worker process

 

(10):把所有进程显示出来,并输出到ps001.txt文件

ps -aux > ps001.txt

(11):输出指定的字段

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -o pid,ppid,pgrp,session,tpgid,comm
  PID  PPID  PGRP  SESS TPGID COMMAND
20539 20537 20539 20539 24823 bash
22155 20539 22154 20539 24823 less
22297 20539 22296 20539 24823 less
24602 20539 24602 20539 24823 watch
24643 20539 24643 20539 24823 watch
24823 20539 24823 20539 24823 ps

 

我这里对ps aux命令输出的每一列都代表什么解释一下:


USER:该进程是由哪个用户产生的


PD:进程的D号


%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;


%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;


VSZ:该进程占用虚拟内存的大小,单位KB;


RSS:该进程占用实际物理内存的大小,单位KB;


TTY:该进程是在哪个终端中运行的。对于CentOS来说,y1是图形化终端,


ty2-y6是本地的字符界面终端。pts/0-255代表虚拟终端。


STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、S:包含子进程、1:多线程、+:前台显示


START:该进程的启动时间~


最后,这里再扩展一个查看进程树的命令:pstree,运行实例如下

root@iZijvdp1z0m5q4Z:~# pstree
systemd─┬─AliSecGuard───6*[{AliSecGuard}]
        ├─AliYunDun───25*[{AliYunDun}]
        ├─AliYunDunUpdate───5*[{AliYunDunUpdate}]
        ├─CmsGoAgent.linu─┬─exe───12*[{exe}]
        │                 └─5*[{CmsGoAgent.linu}]
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─2*[agetty]
        ├─aliyun-service───8*[{aliyun-service}]
        ├─assist_daemon───7*[{assist_daemon}]
        ├─atd
        ├─chronyd
        ├─cron───6*[cron───sh───lynx───lynx]
        ├─dbus-daemon
        ├─mysqld───62*[{mysqld}]
        ├─networkd-dispat───{networkd-dispat}
        ├─nginx───2*[nginx]
        ├─php-fpm7.3───3*[php-fpm7.3]
        ├─redis-server───3*[{redis-server}]
        ├─rsyslogd───3*[{rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-network
        ├─systemd-resolve
        ├─systemd-udevd
        └─unattended-upgr───{unattended-upgr}

pstree命令将所有进程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本进程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的进程。


有好的建议,请在下方输入你的评论。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
SQL 监控 架构师
linux系统性能分析的目的
【4月更文挑战第19天】在Linux系统中,找到性能瓶颈是关键,涉及应用程序、操作系统、硬件和网络的全面排查。优化方案通常针对应用程序和操作系统,而硬件和网络问题较易定位。目标是平衡资源使用,确保系统响应和稳定性。系统管理员、架构设计人员和开发人员共同参与,通过监控硬件、网络、配置和代码来优化性能。流程包括管理员初步判断,架构师处理结构问题,开发人员优化代码,实现系统资源的均衡利用。
6 1
|
3天前
|
Ubuntu Linux
Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)
请注意,以上步骤是在临时基础上进行配置的。如果要永久保存静态IP地址,通常还需要修改 `/etc/network/interfaces`文件,以便在系统重启后保持配置。同时,确保备份相关配置文件以防止出现问题。
15 1
|
3天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
3天前
|
Linux 数据安全/隐私保护
Linux系统忘记密码的三种解决办法
这篇博客介绍了三种在Linux忘记密码时重置登录密码的方法:1) 使用恢复模式,通过控制台界面以管理员权限更改密码;2) 利用Linux Live CD/USB启动,挂载硬盘分区并使用终端更改密码;3) 进入单用户模式,自动以管理员身份登录后重置密码。每个方法都提供了详细步骤,提醒用户在操作前备份重要数据。
|
3天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
4天前
|
JSON Unix Linux
Linux系统之jq工具的基本使用
Linux系统之jq工具的基本使用
32 2
|
4天前
|
数据采集 监控 安全
linux系统被×××后处理经历
linux系统被×××后处理经历
|
4天前
|
监控 安全 Linux
Linux系统之安装ServerBee服务器监控工具
【4月更文挑战第22天】Linux系统之安装ServerBee服务器监控工具
43 2