查看进程
Linux下显示系统进程的命令ps,最常用的有ps -ef 和 ps aux。Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。
现在的大部分Linux系统都是可以同时使用这两种方式
指令: ps -ef
作用: 主要是查看服务器的进程信息
选项含义:
-e:等价于 ‘-A’ ,表示列出全部的进程
-f:显示全部的列(显示全字段)
通过 -f 显示所有列
列的含义说明:
UID: 该进程执行的用户id
PID: 进程id
PPID: 该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程被称为僵尸进程
C: cpu的占用率,形式是百分数(%)
STIME: 进程的启动时间
TTY: 终端设备,发起该进程的设备识别符号,如果显示‘ ?’表示该进程并不是由终端发起
TIME: 进程的执行时间
CMD: 该进程的名称或对应的路径
指令: ps aux
作用: 主要是查看服务器的进程信息
列的含义说明:同ps -ef 不同的有列有
USER: 用户名
PID: 进程ID
%CPU: 进程占用的CPU百分比
%MEM: 占用内存的百分比
VSZ: 该进程使用的虚拟內存量(KB)
RSS: 该进程占用的固定內存量(KB)(驻留中页的数量)
STAT: 进程的状态
START:该进程被触发启动时间
TIME: 该进程实际使用CPU运行的时间
CMD: 该进程的名称或对应的路径
其中STAT状态位常见的状态字符有:
D: 无法中断的休眠状态(通常 IO 的进程);
R: 正在运行可中在队列中可过行的;
S: 处于休眠状态;
T: 停止或被追踪;
W: 进入内存交换 (从内核2.6开始无效);
X: 死掉的进程 (基本很少见);
Z: 僵尸进程;
< :优先级高的进程
N :优先级较低的进程
L :有些页被锁进内存;
s :进程的领导者(在它之下有子进程);
l :多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ :位于后台的进程组;
二者都可以通过配合|grep 使用
grep命令 是查找, 是一种强大的文本搜索工具,它能 使用正则表达式 搜索文本,并把匹 配的行打印出来。
grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
比如:
ps -ef |grep redis
ps aux |grep redis
删除进程
指令: kill ,
作用: 杀掉进程
kill pid (默认信号是 15, 与 kill -15 pid相同, 正常停止)
可以选择性传入参数 -s sigspec 或者 -n signum
可以通过kill -l 查看 对应信号标识与对应数字
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
执行kill pid,
系统会发送一个SIGTERM(15)的信号给对应的程序。当程序接收到该signal后,将会发生以下的事情(其中之一)
- 程序立刻停止
- 当程序释放相应资源后再停止
- 程序可能仍然继续运行
大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后在停止。但是也有程序可以在接受到信号量后,做一些其他的事情,并且这些事情是可以配置的。如果程序正在等待IO,可能就不会立马做出相应。
也就是说,SIGTERM多半是会被阻塞的、忽略。
kill -9 pid等于kill -s 9 pid,表示强制,尽快终止一个进程。多半admin会用这个命令