进程管理
查看进程方式1:ps
ps(process scan)
ps aux(无横杠的)
ps -elf(有横杠的)
ps a 终端上开启的进程
ps au 终端上开启的进程 详细版
ps aux 会显示所有的进程
PID是process identify进程标识
%CPU 占用cpu百分比
%MEM 内存百分比
VSZ占用虚拟内存的大小
RSS占用真实物理内存的大小
tty表示是在哪一个终端上打开的,?表示随机器启动,并不属于哪个终端
STAT进程的状态:S表示sleep(休眠,操作系统此时没有处理该进程)
R表示running(运行,操作系统正在处理的进程)
Z表示zombie(僵尸,僵死,某一个进程在退出之前的返回状态,如果这种状态持续到人类能看到他,就不正常了)
T表示stop(暂停状态)
具体还有什么状态 man ps
ps -e 显示所有进程
ps -el 以长格式显示所有进程
ps -elf完整形式显示所有进程
--------------------------------------------
查看进程方式2:top
目前有一个用户,load average表示cpu的负载,分别表示前一分钟 五分钟十五分钟到现在的等待cpu处理的进程队列平均长度
11个进程,以及分别的状态
不同于ps,这里显示的进程都是动态的
按P使用cpu排序 按M使用内存排序
发现占用内存cpu高的而且又不重要的,可以按k然后输入PID杀死
q退出
------------------------
查看进程方式3:pgrep
查看eye进程名的PID: pgrep eye
查看eye进程的PID详细(会以pid和名称对应的形式显示):pgrep -l eye
查看进程方式4:pidofpidof与pgrep不同,必须要写完整的名称:pidof xeyes
查看进程方式5:lsof
比如我们如果装了apache服务的话,设置默认端口为80,就可以只用lsof查看80端口的所有进程
查看进程方式6:pstree(之前说过了)
系统第一个启动的进程是init进程,之后是他的子进程
(a:arguement参数 u所有者 p:pid)
pstree -aup
杀死进程
首先查看该进程的pid,然后(15是信号,不写默认就是15,7879是进程pid):
kill -15 7879
如果碰到一些顽固进程就是用-9,强制杀死
kill -9 7879
还有一些其他的信号:
-19 指暂停线程
-18 指激活进程
详情可以使用kill -l查看所有信号数字
------------------------------------------
pkill后边可以跟进程的名称
pkill xeyes
------------------------------------------
killall
假如很多用户通过ssh连接到这台服务器,就可以使用killall -9 sshd杀死所有这种进程