进程
1. 几个查看命令
发现一个问题,如果选项不带-的话,显示的更加简洁. 使用ps –aux的时候,会有一个报错.
ps –l:只能查阅自己的bash程序
ps aux:查阅所有的系统进程
ps ef:比ps –aux简洁易读一些
ps aux | egrep “cron|syslog” :结合egrep同时查看多个进程
2. 关于僵尸程序(zombie)
僵尸程序是指程序结束了但是还一直存在内存当中.造成僵尸程序的原因是 该程序已经执行完毕,或者因故应该终止了,但是该程序的父程序却无法完整的节哀那个该程序结束掉,造成该程序一直存在内存中.
如果ps的时候发现某个程序的CMD后面还接上了<defunct>时,就表示该程序是僵尸程序.
相对应的孤儿进程就是父进程挂掉了但是子进程还存在.系统是不允许这种情况出现的,init将成为该子进程的父进程.
3. init是系统第一个启动的程序,是所有程序的父进程.他是无法被kill掉的, 他被kill了系统就挂掉了.
4. 持续检测整个系统的程序工作状态:top命令
top –d x :x表示更新时间,默认为5秒
top命令默认是以CPU的使用率进行排序的;输入M表示以内存使用率排序,输入N表示以PID号码进行排序,输入T表示由CPU使用时间排序,输入r表示修改nice值.
如果需要查看某个进程的资源使用情况,可以通过top –p xxx 命令实现,-p参数表示接PID.
5. pstree:用于查找程序之间的依赖关系.
pstree –A或者pstree –U:表示如果有乱码的话,尝试以ansi码或者万国码输出
pstree –Aup :输出时携带user和PID信息
6. 进程的管理
使用kill和killall命令实现对进程的管理.这个命令在前面有所介绍.
kill -1 xxx:-1表示进程重新启动,xxx表示进程的PID
查找进程PID比较麻烦,可以使用killall命令跟服务名的方式,例如killall –i -1 syslogd .-i表示交换式,就是kill的时候会请求你的确认,如果有多个相同进程名的话(如bash),则-i很有用.
另外还有两个特别好用的命令,在shell编程中使用广泛,pgrep和pkill.例如:pgrep httpd能够提取出httpd的所有进程,pkill httpd能够终止所有httpd的进程.
7. 进程优先级
PRI(new)=PRI(old) nice
nice值使我们可以手动调整的,使用nice或者renice或者top命令后键入r进行调整.root账户的nice值可调范围在-20~19,普通账户的nice值可调范围在0~19.
nice –n x command
例如:nice –5 vi &将vi进程的nice值调整为5
如果是已经在运行中的进程,使用renice命令调整.
renice n pid :n表示nice值,pid表示需要调整的进程pid,注意n前面没有-参数
8. 使用free可以查看系统CPU利用率和内存使用等信息
free –m
9. uptime,查看系统启动时间,运行时间,目前有几个登录者,CPU使用率的平均情况等信息.
10. vmstat (victual memory statics)可以动态了解系统资源的运作,例如等待运行的程序数量,被阻塞的程序数量,CPU空闲,交换分区(swap)的交换出去的进程数量等,是一个很好用的工具.需要关注的有r(running,等待的进程,不要超过2倍cpu数量),b(block,阻塞的进程,为0比较好),swpd(被交换的进程,为0比较好),id(idle,cpu空闲百分比,大于50%较好).
vmstat 5 5 5s统计一次,共计统计5次
11. fuser,用于了解当前文件系统正在被哪些程序使用,在umount被拒绝的时候很好用.
fuser –muv / :/ 可以切换成其他文件系统.u表示列出进程所属用户,v表示verbose,m表示可以查看文件系统.如果值查看某个文件则去掉m.但是一般只有fifo类型的文件才使用此命令才有显示(find / –type p)
12. lsof(list open files),是一个列出当前系统进程的相应的打开文件的工具.与fuser工具作用相反.
lsof –u ila | grep vim
13. 找出某个程序的PID
e.g.
pidof –s vi :找出正在运行的vi程序的PID.
查看某个用户开启的进程: ps –uU usrxxx
关闭图形程序:xkill本文出自 “海阔天空” 博客,谢绝转载!
|