Linux系统进程管理
一、进程概念理解
在自身的虚拟地址空间运行的一个独立的程序。
可以理解一套程序可以是完成一个项目,要完成这个项目需要各个子项目来完成,各个子项目中是相符相依的,有一定的逻辑先后顺序,子项目即进程也是干一件事,进程有个PID号,可根据这个号查出在干什么事(ps -ef|grep pid),或基于干的事来查PID号;也可用ps auxf来查看进程占用了多少的资源。
Linux上打开一个文件就会产生一个打开文件的进程,关闭文件,进程也随机关闭。
程序是一个进程指令的集合,程序只占用磁盘空间,而不占用系统运行的资源,而进程仅仅占用系统内存空间,是动态的、可变的。
二、常用的命令
1.         ps -ef |grep httpd
其中UID是用户的ID标识号,PID是进程的标识号,PPID表示的是父进程,STIME表示的是进程的启动时间,TTY表示进程所属的终端控制台,TME表示进程启动后累计使用的CPU总时间,CMD表示正在执行的命令。
2.         ps auxf | grep httpd
其中,%CPU表示进程占用的CPU百分比,%MEM表示进程占用内存的百分比,STAT表示进程的状态,有:R表示正在运行中的进程,S表示处于休眠状态的进程,Z表示僵死的进程,用<表示优先级高的进程,用N表示优先级较低的进程,用小写的S表示父进程,用+表示后台的进程。START表示进程启动的时间。
3.         top
动态显示内存、CPU、进程使用信息。其中VIRT是指占用的虚拟内存总量,RES指的是未被换出的物理内存,SHR指共享内存。
4.         lsof监控系统进程与程序
用# lsof /var/log/messages 显示某个特定的文件由哪个进程在使用
用#lsof -c nfs 显示nfs进程现在打开的文件
用#lsof -g gid 显示指定的进程组打开的文件
用#lsof -p PID 显示进程号打开的所有文件及相关的进程
用#lsof -i tcp:25 显示系统中TCP协议对应的25端口进程信息
用#lsof -i :80 显示系统中80端口对应的进程信息
用#lsof -i udp@127.0.0.1:53