ps - 进程信息

ps命令来自于英文词组”process status“的缩写,其功能是用于显示当前系统的进程状态。使用ps命令可以查看到进程的所有信息,例如进程的号码、发起者、系统资源使用占比(处理器与内存)、运行状态等等。帮助我们及时的发现哪些进程出现”僵死“或”不可中断“等异常情况。

经常会与kill命令搭配使用来中断和删除不必要的服务进程,避免服务器的资源浪费。

语法及选项

ps [选项]

    常用选项:
        a:显示所有程序,包括其他用的程序;
        u:以用户为主的格式来显示程序状态;
        x:以用户与程序共同的信息来显示程序状态;
        -A:列出所有的行程;
        c:显示每个程序真正的指令名称,而不包含路径;
        e:显示环境变量;
        l:显示进程的详细信息;
        f:显示进程间的关系;
        -H:显示树状结构;
        r:显示当前终端的进程;

    其他选项:
        -e:等价于“-A”,即显示所有进程;
        -f:显示进程间的关系;
        -h:显示树状结构;
        -l:显示进程的详细信息;
        -w:显示加宽,可以显示更多的信息;
        -p:指定进程号,即显示指定进程的信息;
        -s:指定进程号,即显示指定进程的子进程;
        -t:指定终端号,即显示指定终端的进程;
        -j:显示进程的job信息;
        -o:指定输出格式,例如:
            user:显示用户名
            pid:显示进程号
            lwp:显示轻量级进程号
            ppid:显示父进程号
            pgid:显示进程组ID
            sid:显示会话ID
            pri:显示进程优先级
            nice:显示进程nice值
            psr:显示当前进程的CPU使用率
            %cpu:显示进程的CPU使用率
            %mem:显示进程的内存使用率
            etime:显示进程的运行时间

示例

列出进程的详细信息

[root@lwz1 sed]# ps -elf
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root         1     0  0  80   0 - 44103 do_epo 11月09 ?      00:00:14 /usr/lib/systemd/system
1 S root         2     0  0  80   0 -     0 -      11月09 ?      00:00:00 [kthreadd]
1 I root         3     2  0  60 -20 -     0 -      11月09 ?      00:00:00 [rcu_gp]

解释:

  • F:进程的标志,与ps -ef的输出格式相同;

  • S:进程的状态:

    • S:睡眠;

    • D:不可中断休眠(IO);

    • R:正在运行;

    • Z:僵尸进程;

    • T:停止;

    • I:空闲内核线程;

    • s:包含子进程;

  • UID:进程所有者的用户名;

  • PID:进程ID;

  • PPID:父进程ID;

  • C:进程使用的CPU时间;

  • PRI:进程的优先级;

  • NI:进程的优先级;

  • ADDR:进程的内存地址;

  • SZ:进程使用内存大小;

  • WCHAN:进程休眠的资源;

  • STIME:进程启动的时间;

  • TTY:进程启动时的终端;

  • TIME:进程使用的CPU时间;

  • CMD:命令名/命令行;

列出所有终端的所有用户的所有进程:

[root@lwz1 sed]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 176412 11040 ?        Ss   11月09   0:14 /usr/lib/systemd/systemd --swit
root         2  0.0  0.0      0     0 ?        S    11月09   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   11月09   0:00 [rcu_gp]

解释:

  • USER:进程所有者的用户名;

  • PID:进程ID;

  • %CPU:进程占用的CPU使用率;

  • %MEM:进程使用的物理内存比例;

  • VSZ:进程使用的虚拟内存大小;

  • RSS:进程使用的物理内存大小;

  • TTY:进程的终端号;

  • STAT:进程状态;

    • <:高优先级;

    • N:低优先级;

    • L:被锁;

    • S:进程的睡眠状态;

    • R:正在运行;

    • I:空闲内核线程;

    • +:在后台进程组里;

  • START:进程启动时间;

  • TIME:进程使用的CPU时间;

  • COMMAND:命令名/命令行;