[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

使用ps命令进行操作的便捷方式

你好。
我叫冈崎,来自系统解决方案部。
这次就写一下操作时经常用到的ps命令。

PS命令是什么?

显示当前正在运行的进程的命令语法如下。

附言[可选]

此命令允许您通过指定各种选项来指定要显示的进程。

使用示例

  • 显示当前正在运行的进程
  • $ ps PID TTY 时间 CMD 12558 点/0 00:00:00 sudo 12559 点/0 00:00:00 su 12560 点/0 00:00:00 bash 12611 点/0 00:00:00 ps
    
  • 显示系统上运行的所有进程
  • $ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT 启动时间命令 root 1 1.4 0.2 19632 2492 ? Ss 11:53 0:00 /sbin/init root 2 0.0 0.0 0 0 ? S 11:53 0:00 ] 根 3 0.0 0.0 0 0 ? S 11:53 0:00 [ksoftirqd/0] 根 4 0.0 0.0 0 0 ? 11:53 0:00 [kworker/0:0H] 根 6 0.0 0.0 0 0 ? 53 0:00 [kworker/u30:0] 根 7 0.0 0.0 0 0 ? S 11:53 0:00 [rcu_sched ] 根 8 0.0 0.0 0 0 ? S 11:53 0:00 [rcu_bh] 根 9 0.0 0.0 0 0 ? S 11:53 0:00 [迁移/0] 根 10 0.0 0.0 0 0 ? S< 11:53 0 :00 [lru-add-drain] 根 11 0.0 0.0 0 0 ? S 11:53 0:00 [cpuhp/0] 根 12 0.0 0.0 0 0 ? S 11:53 0:00 [kdevtmpfs] 根 13 0.0 0.0 0 0 ? S< 11:53 0:00 [netns] 根 14 0.0 0.0 0 0 ? 53 0:00 [kworker/u30:1] 根 16 0.0 0.0 0 0 ? S 11:53 0:00 [xenwatch] 根 17 0.0 0.0 0 0 ? S 11:53 0:00 [kworker/u30:2] 根21 0.0 0.0 0 0 ? S 11:53 0:00 [xenbus]
    

    或者

    $ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 11:53 ? 00:00:00 /sbin/init root 2 0 0 11:53 00:00:00 [kthreadd] root 3 2 0 11 :53 ? 00:00:00 [ksoftirqd/0] 根 4 2 0 11:53 ? 00:00:00 [kworker/0:0] 根 5 2 0 11:53 ? :0H] 根 6 2 0 11:53 ? 00:00:00 [kworker/u30:0] 根 7 2 0 11:53 ? 00:00:00 [rcu_sched] 根 8 2 0 11:53 ? :00 [rcu_bh] 根 9 2 0 11:53 ? 00:00:00 [迁移/0] 根 10 2 0 11:53 ? 00:00:00 [lru-add-drain] 根 11 2 0 11:53 00:00:00 [cpuhp/0] 根 12 2 0 11:53 ? 00:00:00 [kdevtmpfs]
    

    尽管显示有所不同,但您可以输出服务器上当前运行的进程列表。
    您可以使用以下命令了解当前有多少个同名进程正在运行。

    $ ps -ef | grep [要检查的进程] | wc -l 或 ps aux | grep [要检查的进程] |
    
  • 只显示 ps 命令指定的项目
  • $ ps -eo pid,用户,rss,pcpu,pmem,args PID 用户 RSS %CPU %MEM 命令 1 root 2456 0.3 0.2 /sbin/init 2 root 0 0.0 0.0 [kthreadd] 3 root 0 0.0 0.0 [ksoftirqd/0] 4 根 0 0.0 0.0 [kworker/0:0] 5 根 0 0.0 0.0 [kworker/0:0H]
    

    示例中显示了进程ID、用户、物理内存使用情况、CPU使用率、内存使用率、进程名称。
    这样就可以只显示指定的项目,只输出必要的信息。
    可以指定的项目相当多,所以我将介绍其中的一些。

    pcpu (%cpu) - 进程 cpu 使用情况
    pmem (%mem) - 内存使用情况
    args (cmd,command) - 带字符串参数的命令
    pid - 进程 ID
    ppid - 父进程 ID
    uid (euid) - 执行用户 ID
    gid (egid) -执行组 ID
    user (euser,uname) - 执行用户
    组 (egroup) - 执行组
    rss (rssize,rsz) - 物理内存使用情况
    lstart - 进程启动时间

  • 按项目对输出结果进行排序
  • $ ps -eo pid,用户,rss,args --sort rss PID 用户RSS 命令 2667 ec2-user 2424 ps -eo pid,用户,rss,args --sort rss 2232 root 2428auditd 1 root 2464 /sbin/init 2544根 2528 crond 1533 根 2572 /sbin/udevd -d 2253 根 2592 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5 2480 根 2596 /usr/sbin/sshd 2314 rpcuser 3160 rpc.statd 2639 ec2-用户 3416 -bash 2519 smmsp 3848 sendmail:/var/spool/clientmqueue 的队列 runner@01:00:00 2638 ec2-user 3988 sshd:ec2-user@pts/0 2510 root 4084 sendmail:接受连接 2490 ntp 4332 ntpd - u ntp:ntp -p /var/run/ntpd.pid -g
    

    在示例中,RSS 结果已排序。
    另外,使用时请小心,因为它无法按项目排序。
    以下是尝试按httpd进程启动时间排序的结果。

    $ ps -eo pid,lstart,args --sort lstart | grep httpd PID 启动命令 21544 Thu Aug 3 14:57:43 2017 /usr/sbin/httpd 21733 Thu Aug 3 14:58:42 2017 grep httpd 21734 Thu Aug 3 11:17:55 2017 /usr/sbin/httpd 38742 星期四 8 月 3 日 12:10:51 2017 /usr/sbin/httpd 42259 星期日 7 月 30 日 04:29:09 2017 /usr/sbin/httpd 64817 星期四 8 月 3 日 13 :32:34 2017 /usr/sbin/httpd
    

    可以看到,它不是按启动时间排序,而是按pid排序。

    概括


    有很多机会使用 ps 命令
    来检查哪些进程正在运行可以指定的项目还有很多,所以
    我认为充分利用它们并以与平常不同的方式使用它们会很有趣。

    如果您觉得这篇文章有帮助,请点赞!
    1
    加载中...
    1 票,平均:1.00 / 11
    6,464
    X Facebook 哈特纳书签 口袋
    [2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

    [2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

    [大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

    [大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

    写这篇文章的人

    关于作者

    冈崎润一郎

    拥有丰富的手机游戏搬迁及运营经验。

    他每天负责多云运营、服务器建设和搬迁。 随着案件数量的增加,我正在考虑如何提高工作效率。 我们经常考虑根据每个云的优点来重新定位服务器的方法。

    在云间迁移、从物理到云的迁移过程中,我们在日本MSP协会举办的比赛中取得了两连胜。