进程管理:top,pstree,killall命令
top:动态查看进程变化
#top [-d 数字] |top [-bnp]
-d:后面可以接秒数,就是整个进程界面更新的秒数,默认是5秒
-b:以批次的方式执行top,还有更多的参数可以使用。通常会搭配数据流重定向来将批处理的结果输出成为文件。
-n:与-b搭配,意思是需要进行几次top的输出结果。
-p:指定某些个PID来进行查看检测而已。
在top执行过程当中可以使用的按键命令:
?:显示在top中可以输入的按键命令
P:以CPU的使用资源排序显示
M:以内存的使用资源排序显示
N:以PID来排序
T:由该进程使用的CPU时间积累排序
k:给予某个PID一个信号
r:给予某个PID重新制定一个nice值
q:离开top软件的按键
第一行:显示目前的时间,开机到目前为止经过的时间,已经登陆系统的人数,系统在1,5,15分钟的平均工作负载;
第二行:显示目前进程的总量,和个别进程在什么状态;
第三行:显示CPU的整体负载
%wa:代表的是I/Owait,通常系统变得很慢都是I/O产生的问题。
若果是多内核系统,可以按数字键 1 来显示不同CPU的负载率。
第四行与第五行:表示目前的物理内存与虚拟内存。
第六行:显示状态的地方
PID:每个进程的ID
USER:该进程所属的用户
RR:进程的优先执行顺序,越小越先被执行
NI:Nice的简写,简称的优先执行顺序
%CPU:CPU的使用率
%MEM:内存的使用率
TIME+:CPU使用的而时间的累加
例子:将top信息进行两次,然后将结果输出到 /tmp/top.txt
#top -b -n 2 > /tmp/top.txt
取得自己的bash 的PID,使用top查看
#echo $$
#top -d 2 -p 13639
修改优先级:
在top显示时,输入 r ,然后输入某一个进程的PID,我们就能修改该进程的NI值了。
pstree:查找进程之间的相关性
#pstree [-A|U] [-up]
-A:各进程树之间的连接以ASCII字符来连接,可以克服乱码问题
-U:各进程树之间的连接以utf8码的字符来连接,在某些终端接口下可能会有错误
-p:同时列出每个进程的PID
-u:同时列出每个进程的所属账号名称
例子:列出目前系统上面所有的进程树的相关性
#pstree -A
同时显示出PID与users
#pstree -Aup
进程的管理
程序是如何互相管理的呢?其实是通过给予该进程一个信号去告知该进程你想要让它做什么。
代号 名称 内容
1 SIGHUP 启动被终止的进程,可以让该PID重新读取自己的配置文件,类似重新启动
2 SIGINT 相当于用键盘输入[ctrl]-c来中断一个进程的进行
9 SIGKILL 代表强制中断一个进程的进行,如果进行到一半,这样会有“半成品”留下
15 SIGTERM 以正常的结束进程来终止该进程,如果该进程已经出现问题则终止不了
17 SIGSTOP 相当于用键盘输入[ctrl]-z来暂停一个进程的进行
通常只要记住1、9、15这三个号码的意义即可。
kill -signal PID
kill可以帮助我们将这个signal传送给某个工作或者是某个PID(直接输入数字)。要强调的是,signal后面直接加数字与加上%number是不同的。
killall -signal 命令名称
kill后面必须接PID等,killall可以利用“执行命令的名称”来给予信号。
#killall [-iIe] [command name]
-i:交互式的,若需要删除时,会出现提示符给用户
-e:exact的意思,表示后面接的command name要一致,但整个完整的命令不能够超过15个字符
-I:命令名称忽略大小写
例子:终止所有以httpd启动的进程
#killall -9 httpd
依次询问每个bash进程是否要被终止运行
#killall -i -9 bash
阅读(1148) | 评论(0) | 转发(0) |