zoukankan      html  css  js  c++  java
  • linux ps命令介绍

    ps:将某个时间点的程序运作情况撷取下来

    常用格式:

    ps -o pid,ppid,pgid,sid,comm

    ps -u

    ps -l

    [root@linux ~]# ps aux
    [root@linux ~]# ps -lA
    [root@linux ~]# ps axjf
    参数:
    -A :所有的 process 均显示出来,与 -e 具有同样的效用;
    -a :不与 terminal 有关的所有 process ;
    -u :有效使用者 (effective user) 相关的 process ;
    x :通常与 a 这个参数一起使用,可列出较完整信息。
    输出格式规划:
    l :较长、较详细的将该 PID 的的信息列出;
    j :工作的格式 (jobs format)
    -f :做一个更为完整的输出。
    特别说明:
    由于 ps 能够支持的 OS 类型相当的多,所以他的参数多的离谱!
    而且有没有加上 - 差很多!详细的用法应该要参考 man ps 喔!

    范例1:将目前属于您自己这次登入的 PID 与相关信息列示出来

    [root@linux ~]# ps -l
    F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
    0 S 0 5881 5654 0 76 0 - 1303 wait pts/0 00:00:00 su
    4 S 0 5882 5881 0 75 0 - 1349 wait pts/0 00:00:00 bash
    4 R 0 6037 5882 0 76 0 - 1111 - pts/0 00:00:00 ps
    # 上面这个信息其实很多喔!各相关信息的意义为:
    # F 代表这个程序的旗标 (flag), 4 代表使用者为 super user;
    # S 代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍;
    # PID 没问题吧!?就是这个程序的 ID 啊!底下的 PPID 则上父程序的 ID;
    # C CPU 使用的资源百分比
    # PRI 这个是 Priority (优先执行序) 的缩写,详细后面介绍;
    # NI 这个是 Nice 值,在下一小节我们会持续介绍。
    # ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running
    # 的程序,一般就是『 - 』的啦!
    # SZ 使用掉的内存大小;
    # WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作;
    # TTY 登入者的终端机位置啰;
    # TIME 使用掉的 CPU 时间。
    # CMD 所下达的指令为何!?
    # 仔细看到每一个程序的 PID 与 PPID 的相关性为何喔!上头列出的三个程序中,
    # 彼此间可是有相关性的吶!

    范例2:列出目前所有的正在内存当中的程序

    [root@linux ~]# ps aux
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 1 0.0 0.1 1740 540 ? S Jul25 0:01 init [3]
    root 2 0.0 0.0 0 0 ? SN Jul25 0:00 [ksoftirqd/0]
    root 3 0.0 0.0 0 0 ? S< Jul25 0:00 [events/0]
    .....中间省略.....
    root 5881 0.0 0.3 5212 1204 pts/0 S 10:22 0:00 su
    root 5882 0.0 0.3 5396 1524 pts/0 S 10:22 0:00 bash
    root 6142 0.0 0.2 4488 916 pts/0 R+ 11:45 0:00 ps aux
    USER:该 process 属于那个使用者账号的?
    PID :该 process 的号码。
    • %CPU:该 process 使用掉的 CPU 资源百分比;
    • %MEM:该 process 所占用的物理内存百分比;
    VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
    RSS :该 process 占用的固定的内存量 (Kbytes)
    TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
    STAT:该程序目前的状态,主要的状态有:
    o R :该程序目前正在运作,或者是可被运作;
    o S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号 (signal) 唤醒。
    o T :该程序目前正在侦测或者是停止了;
    o Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
    START:该 process 被触发启动的时间;
    TIME :该 process 实际使用 CPU 运作的时间。
    COMMAND:该程序的实际指令为何?

    范例3:以范例一的显示内容,显示出所有的程序

    [root@linux ~]# ps -lA
    F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
    4 S 0 1 0 0 76 0 - 435 - ? 00:00:01 init
    1 S 0 2 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/0
    1 S 0 3 1 0 70 -5 - 0 worker ? 00:00:00 events/0
    .....以下省略.....

    范例4:列出类似程序树的程序显示

    [root@linux ~]# ps -axjf
    PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
    0 1 0 0 ? -1 S 0 0:01 init [3]
    1 2 0 0 ? -1 SN 0 0:00 [ksoftirqd/0]
    .....中间省略.....
    1 5281 5281 5281 ? -1 Ss 0 0:00 /usr/sbin/sshd
    5281 5651 5651 5651 ? -1 Ss 0 0:00 _ sshd: dmtsai [priv]
    5651 5653 5651 5651 ? -1 S 500 0:00 _ sshd: dmtsai@pts/0
    5653 5654 5654 5654 pts/0 6151 Ss 500 0:00 _ -bash
    5654 5881 5881 5654 pts/0 6151 S 0 0:00 _ su
    5881 5882 5882 5654 pts/0 6151 S 0 0:00 _ bash
    5882 6151 6151 5654 pts/0 6151 R+ 0 0:00 _ ps -axjf

    范例5:找出与 cron 与 syslog 这两个服务有关的 PID 号码

    [root@linux ~]# ps aux | egrep '(cron|syslog)'
    root 1539 0.0 0.1 1616 616 ? Ss Jul25 0:03 syslogd -m 0
    root 1676 0.0 0.2 4544 1128 ? Ss Jul25 0:00 crond
    root 6157 0.0 0.1 3764 664 pts/0 R+ 12:10 0:00 egrep (cron|syslog)

    在预设的情况下, ps 仅会列出与目前所在的 bash shell 有关的 PID 而已,所以, 当我使用 ps -l 的时候,只有三个 PID (范例一)。

  • 相关阅读:
    pgspider sqlite mysql docker 镜像
    pgspider docker 镜像
    pgspider基于pg 的高性能数据可视化sql 集群引擎
    diesel rust orm 框架试用
    golang 条件编译
    Performance Profiling Zeebe
    bazel 学习一 简单java 项目运行
    一个好用node http keeplive agnet
    gox 简单灵活的golang 跨平台编译工具
    mailhog 作为smtp server mock工具
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/4184106.html
Copyright © 2011-2022 走看看