Linux进程的管理,是通过进程管理工具实现的,如:ps、kill和grep等。
01 监视进程的工具:ps
-
-a:显示当前终端运行的的所有进程信息
-
-u:以用户的信息显示进程
-
-x:显示后台运行进程的参数
-
l:长格式输出
-
j:用任务格式来显示进程
-
f:用树状格式来显示进程
-
r:显示运行中的进程
-
ps -aux:查看所有的进程(常用组合)
-
ps -aux | grep:查看并筛选进程
例如 ps -aux|grep java 查看和java有关的进程
-
其中:
1)USER:进程的属主
2)PID:进程的ID
3)PPID:父进程的ID
4)%CPU:进程占用的CPU百分比
5)%NAME:占用内存的百分比
6)NI:进程的NICE值,数值越大,表示较少占用CPU时间
7)VSZ:进程虚拟大小
8)RSS:驻留中页的数量
9)TTY:终端ID
10)STAT:进程状态
11)START:启动进程的时间
12)TIME:进程消耗CPU的时间
13)COMMAND:命令的名称和参数 -
ps -ef:查看父进程的信息
-
ps -ef | grep
-
pstree -pu:进程树
-
pstree -p:显示父id
-
pstree -u:显示用户组
-
kill:杀掉进程(-9表示强制终止,后面详细介绍)
-
kill -9
例如:kill -9 id号 强制结束某个进程
02 查询进程的工具:pgrep
- pgrep是通过程序的名字来查询进程的工具,一般用来判断程序是否正在运行;
- -l:列出程序名和进程ID
- -o:进程起始的ID(当匹配多个进程时,显示进程号最小的那个)
- -n:进程终止的ID(当匹配多个进程时,显示进程号最大的那个)
注意:进程号越大,不一定意味着进程的启动时间越晚 - pgrep命令用来查找进程的信息,通常会和kill命令来连用,在指定条件下kill问题进程
03 终止进程的工具:kill、killall、pkill和xkill
- 当一个程序已经死掉,但又不能退出,这时就该考虑这些工具;
- 在服务器管理中,最好不要使用这些工具来杀死数据库服务器的父进程,因为在强行终止它们时,会产生更多的文件碎片,当碎片达到一定程度时,数据库就有崩溃的危险。例如:myaql服务器最好是按其正常的程序关闭,而不是使用pkill这样危险的动作,当然对于占用资源过多的数据库子进程,我们应该使用kill来杀掉。
kill:杀死单个进程
- 用法:kill -9 [进程ID]
killall:通过程序的名称直接杀死所有进程
- 用法:killall [正在运行的程序名]
pkill:直接杀死运行中的进程
- 用法:pkill [正在运行的程序名]
xkill:在桌面上用于杀死图形界面的程序
在xkil函数运行时会弹出人脑骨一样的图标,单击崩溃的图形程序就能杀死该程序;单击鼠标右键即可退出xkill函数。
04 监视系统任务的工具:top
- 和ps相比,top是动态监视系统任务的工具,top输出的结果是连续的…
- top > Mytop.txt
05 进程的优先级:nice和renice
- 在Linux系统中,进程之间是竞争资源(如CPU和内存的占用)的关系,竞争结果是通过一个谦让度来体现的(谦让度的值为-20~19):高谦让度表示进程优先级别低,负值或0表示最高优先级,拥有有限占用系统资源的权利;
- 创建进程时,nice可以为程序指定谦让度的值,进程优先级的值是父进程shell优先级的值加上所指定的谦让度的值;
nice:为程序指定谦让度的值
- 用法:nice -n 谦让度的增量值 程序
- 注意:所指定的数值是一个增量
renice:通过进程ID来改变谦让度
- 用法:renice 谦让度 PID
- 注意:所指定的谦让度就是进程的绝对值