Linux中的ps是Process status的缩写。用来查看当前运行哪些进程,ps命令列出的是当前那些进程的快照,就是执行ps命令那个时刻的进行,如果要动态的显示进程的信息,需使用top命令。
ps命令支持三种使用的语法格式
- UNIX 风格,选项可以组合在一起,并且选项前必须有“-”连字符
- BSD 风格,选项可以组合在一起,但是选项前不能有“-”连字符
- GNU 风格的长选项,选项前有两个“-”连字符
常见的参数说明:
a:all,显示所有进程(使用在BSD语法系统上);
u:user,显示特定用户;
x:显示无控制终端的进程;
f:用树形格式显示;
r:显示运行中的进程;
l:长格式输出。
j:用任务格式来显示进程;
e:every,查看所有进程(使用在标准语法系统上)
C:查找特定进程名的进程状态(后跟进程名)
其常见的用法有:
ps aux:查看所有进程的状态;
ps axjf:打印进程树;
ps -u root:可以查看特定用户的进程;
PS命令下各字段的含义:
USER:进程的属主;
UID:用户ID;
PID:进程的ID;
PPID:父进程的ID;
SID:会话进程ID;
PGID:进程组ID;
TPGID:控制终端进程组ID;
%CPU:进程占用的CPU的百分比;
WCHAN:正在等待的进程资源;
START:启动进程的时间;
TIME:进程消耗CPU的时间;
COMMAND:命令的名称和参数;
STAT:进程状态:
包含有如下几种状态:
{
D 无法中断的休眠状态(通常 IO 的进程)
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换(从内核2.6开始无效);
X 死掉的进程(从来没见过);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;
}
kill命令:向进程发送一个信号;
常用参数:
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称;
-a 当处理当前进程时,不限制命令名和进程号的对应关系;
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s 指定发送信号;
-u 指定用户
如:
常见使用方法:
kill [信号] [PID]
如:
常用的信号有:
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
参考文章:https://linux.cn/article-4743-1.html
http://www.tuicool.com/articles/JBFnYf