- 显示进程
系统中每个进程都以两种方式存在:前台(foreground)与后台(background),前台就是用户在当前屏幕进行的操作,后台是进程进行的实际操作。“ps”命令是“Process Status”的缩写,执行时可以不加任何参数,显示信息如下:
PID
进程的ID,方便结进程
TTY
登录的的终端,至于tty是什么请参考我转载的一篇 <<理解tty>>
TIME 此进程消耗cpu的时间
CMD 正在执行的命令或进程名
为了显示详细信息可以使用 ps -l:
F
进程状态标记,常用的有:
名称 | 标识码 | 说明 |
ALGINWARN | 001 | 打印警告信息 |
STARTING | 002 | 进程正在开始 |
EXITING | 004 | 系统正在关机 |
PTRACED | 010 | 表示已经调用ptrace(0) |
TRACESYS | 020 | 追踪System call |
FORKNOEXEC | 040 | 已执行fork 但没执行exec |
SUPERPRIV | 100 | 以root身份运行 |
DUMPCODE | 200 | 核心转出 |
SIGNALED | 400 | 以Singal中止进程 |
S 进程状态码,可用下表说明:
标识 | 说明 |
D | 不可中断的闲置状态(Uninterrruptible Sleep) |
R | 可执行的 |
S | 闲置状态 |
T | 追踪或停止 |
Z | 已死亡的进程(Zombie) |
W | 没有足够的内在分页可分配 |
< | 高优先级的进程 |
N | 低优先级的进程 |
L | 有内存分页分配并锁在内在内 |
UID 进程执行者的User ID
PPID
进程的父进程ID
PRI
进程执行时的优先级
NI
进程nice值,可以在运行前用nice,运行中用renice来调整,数值是-20~19,越小优先级越高
SZ
进程占内存大小 以KB为单位
WCHAN
waiting channel 为进程或system call等待时的地址
以用户格式显示:
%CPU
cpu使用百分比
%MEM
内存使用百分比
VSZ
使用虚拟内存大小
RSS
使用物理内存的大小
START
进程开始时间
ps x 来显示后台运行的进程(由于信息很多,图片中用管道取了一部分)
ps aux 经典命令,如果我们想查找特定进程比如firefox 可台这样 ps aux | grep firefox
你可能已经注意到了上面的 ps u, ps x , ps aux这三个命令的参数为什么没有 “-”呢?查看一下帮助就明白了,它用的是BSD语法。
还有一个比较有用的是:
ps -o 属性.1,属性2..
这个可以按进程的属性查找,上面图中每个命令的第一行都是进程的属性。
- 查找进程:
最灵活的当属:ps [options] | grep
pgrep,有人可以无法分清pgrep与grep,我来简单说一下,pgrep前缀p(process),说明是对进程的,可以基于进程的属性和名称来查找进程,pgrep返回的是进程ID;grep呢是从一个流(文件的输入与输出)中查找匹配的项。如果我们准确的知道进程的名称,可以使用 pidof 的方式来获得进程ID,这在编程中十分有用。
- 结束进程
按名称 killall [signal] pidname...
按模式 pkill [signal] mode
这里的signal主要记住这几个:
1 HUP 重读配置文件
9 KILL 立即终止
15 TERM(默认) 正常终止
更多signal信息,使用 man 7 singal来查看。
- 其它
top 显示系统正在运行的进程列表,每5秒更新一次,按?查看更多先项,q退出
bg 后台运行如果我们想让一个进程后台运行,可以类似于这样firefox &
fg 前台运行,可以将后台运行的任务恢复到前台运行。
Ctrl+z 暂时停止任务,这个任务可以用bg恢复在后台运行,fg恢复前台运行
jobs 列出任务的编号与名称
注:查找进程详细信息
#ps aux|grep 29195可查看具体的进程调用信息