目前 能够 经过 不少种方式 查看 系统进程,top之类的 工具 能够 动态 的获取 进程信息,今天 介绍 静态 获取 进程信息的 工具 -- ps(固然,静态 获取 进程信息 这类工具 确定 不止 ps,还有 pstree...)
bash
### ### 进程状态 能够 是单个状态,也能够是 多个 状态的组合,例如 Ss、S< ### ## R -- Running.运行中 ## S -- Interruptible Sleep.等待调用 ## D -- Uninterruptible Sleep.不可中断睡眠 ## T -- Stoped.暂停或者跟踪状态 ## X -- Dead.即将被撤销 ## Z -- Zombie.僵尸进程 ## W -- Paging.内存交换 ## N -- 优先级低的进程 ## < -- 优先级高的进程 ## s -- 进程的领导者 ## L -- 锁定状态 ## l -- 多线程状态 ## + -- 前台进程
## -l -- 长格式输出(与 -j 参数 不能同时使用) ## -a -- -a 表明 all ## -x -- x参数会显示没有控制终端的进程 ## -u -- 查看特定用户进程 ## -j -- 用任务格式来显示进程(与 -l 参数 不能同时使用) ## -f -- 用树形格式来显示进程 ## -o -- -o 参数控制输出 ## -C -- 显示指定进程
ps -l 显示本身此次登录的 bash 相关的进程信息罗列出来
session
# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1003 195824 195823 0 80 0 - 5616 wait pts/1 00:00:00 bash 0 R 1003 232370 195824 0 80 0 - 2205 - pts/1 00:00:00 ps
## F -- 进程的标志(process flags),当 flags 值为 1 则表示此子程序只是 fork 但没有执行 exec,为 4 表示此程序使用超级管理员 root 权限 ## S -- 进程的状态 ## UID -- 进程的拥有用户 ## PID -- 进程的 ID ## PPID -- 其父进程的 PID ## C -- CPU使用率,单位为百分比 ## PRI -- 优先级(对应 top PR;PR、NI参见 "Linux 操做命令 ps -- 进程查看" 一文) ## NI -- 进程的 NICE 值(优先级) ## ADDR -- ADDR是kernel function,指出该程序在内存的哪一个部分,若是是个running的程序,通常就会显示 "-" ## SZ -- SZ表明程序用掉多少内存 ## WCHAN -- WCHAN表示目前程序是否运行中,一样的,若为-表示正在运行中 ## TTY -- 终端 ID ## TIME -- 进程消耗CPU的时间(运行时长) ## CMD -- 命令的名称和参数
罗列出全部的进程信息
多线程
# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 33784 4268 ? Ss Mar06 0:03 /sbin/init root 2 0.0 0.0 0 0 ? S Mar06 0:00 [kthreadd] ... ... root 3 0.0 0.0 0 0 ? S Mar06 2:28 [ksoftirqd/0]
## USER -- 进程用户用户名 ## PID -- 进程的 ID ## %CPU -- 进程占用的 CPU 百分比 ## %MEM -- 占用内存的百分比 ## VSZ -- 进程使用虚拟内存大小 ## RSS -- 驻留内存中页的大小 ## TTY -- 终端 ID ## STAT -- 进程的状态 ## START -- 启动进程的时间 ## TIME -- 实际使用CPU运行的时间 ## COMMAND -- 命令的名称和参数
ps -axjf 连同部分的进程呈树状显示出来
ide
# ps -axjf PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 0 2 0 0 ? -1 S 0 0:00 [kthreadd] 2 3 0 0 ? -1 S 0 2:28 \_ [ksoftirqd/0] ... ... 2 237046 0 0 ? -1 S 0 0:00 \_ [kworker/u480:1] 0 1 1 1 ? -1 Ss 0 0:03 /sbin/init ... ... 1 902 902 902 ? -1 Ss 0 0:04 smbd -F 902 1160 902 902 ? -1 S 0 0:00 \_ smbd -F 902 1271 902 902 ? -1 S 0 0:08 \_ smbd -F
## PPID -- 其父进程的 PID ## PID -- 其父进程的 PID ## PGID -- 进程组 PID ## SID -- session 的 ID ## TTY -- 终端 ID ## TPGID -- 前台进程组的 ID;TPGID栏写着-1的都是没有控制终端的进程,也就是守护进程 ## STAT -- 启动进程的时间 ## UID -- 进程的拥有用户 ## TIME -- 实际使用CPU运行的时间 ## COMMAND -- 命令的名称和参数
指定 显示的 信息
工具
## 只显示 进程的 用户信息 ## ps -axf -o user # ps -afxo user
指定 显示的 进程
线程
## 只显示 指定的进程 # ps -C smbd PID TTY TIME CMD 902 ? 00:00:04 smbd 1160 ? 00:00:00 smbd 1271 ? 00:00:08 smbd # ps -C smbd -jf UID PID PPID PGID SID C STIME TTY TIME CMD root 902 1 902 902 0 Mar06 ? 00:00:04 smbd -F root 1160 902 902 902 0 Mar06 ? 00:00:00 smbd -F root 1271 902 902 902 0 Mar06 ? 00:00:08 smbd -F # ps -C smbd -lf F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 S root 902 1 0 80 0 - 79182 - Mar06 ? 00:00:04 smbd -F 1 S root 1160 902 0 80 0 - 77195 - Mar06 ? 00:00:00 smbd -F 5 S root 1271 902 0 80 0 - 79182 - Mar06 ? 00:00:08 smbd -F