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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 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,则树状图会只显示该使用者所拥有的进程。


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


相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
7月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
612 3
Linux系统禁用swap
|
7月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1142 3
|
6月前
|
监控 关系型数据库 MySQL
在CentOS系统中,如何统计哪个进程打开了文件描述符?
利用上述方法,你可以有效地监控和统计CentOS系统中的进程打开的文件描述符数量,以帮助排查错误或优化系统配置。通过组合使用各种工具和命令,可以获得对系统状态和行为的深入了解,进而做出相应的调整和
288 5
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
713 3
Linux系统初始化脚本
|
8月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
542 18
|
7月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
813 1
|
7月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1236 1
|
Linux 数据库 Perl
【YashanDB 知识库】如何避免 yasdb 进程被 Linux OOM Killer 杀掉
本文来自YashanDB官网,探讨Linux系统中OOM Killer对数据库服务器的影响及解决方法。当内存接近耗尽时,OOM Killer会杀死占用最多内存的进程,这可能导致数据库主进程被误杀。为避免此问题,可采取两种方法:一是在OS层面关闭OOM Killer,通过修改`/etc/sysctl.conf`文件并重启生效;二是豁免数据库进程,由数据库实例用户借助`sudo`权限调整`oom_score_adj`值。这些措施有助于保护数据库进程免受系统内存管理机制的影响。
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
1238 5
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能