自己动手提高ubuntu系统的性能
示,你都可以看到每一个进程都有属于自己的ID,也就是PID.它们都是进程的句柄,而不是表示真实的进程.这有什么区别?对于一个拥有多线程的进程来讲,可以让所有的线程都拥有同一个句柄,也可以让每一个线程都拥有一个句柄.太专业了?恩,通俗来讲,这就相当于……进程的身份证,我们通过它来标志进程.这个东西在ubuntu中默认可以有32768个不同的PID,每有一个新的进程,就分配一个当前未用的PID给它.
好了,让我们找到那个让我们系统变慢的该死的罪魁祸首,看看它的PID,然后用kill PID命令来关闭它.等等,你确定就是这个进程影响了你的系统?你确信没有错杀好人?好吧,其实可以先用kill -stop PID命令来暂停一个进程,看看没有了它,我们的系统是否正常.如果发现了冤假错案,没关系,kill -cont PID能让进程继续工作. 除了直接使用kill PID之外,我们还有更进一步的kill进程的办法.kill PID仅仅是发出一个TERM信号,然后进程能捕捉这个信号,开始释放资源,关闭程序,这不是一下子就完成的,因此在关闭程序之前,你可以结束打开的文件和完成正在做的任务.但是这导致一个问题,假如进程正在进行作业不能中断,那么进程可以忽略这个SIGTERM信号,如果进程失去响应了怎么办?别急,我们还可以试一试kill -1 PID命令,这个命令发送的是hang up信号,含义是“中止信号”,它告诉进程,终端已经被kill了.但这个信号同样只被运行良好的进程所拦截.假设这两种方式都无法结束进程,那么只能使用kill -9 PID了.这个命令发送的是真正的kill信号,对于这个信号,进程是不能忽略的.这是一个“我不管您在做什么,立刻停止”的信号,也就是说进程立刻被终止,不实施清理操作. 信号是用来与守护程序和进程通信的.任何活动任务都是一个进程,而守护程序是等待对某些事件做出反应或者按照日程安排执行任务的后台服务.一个程序有建在其中的信号处理程序用于捕获和应答信号.在LINUX中的signal参考指南解释了各种不同信号和这些信号的用途.常用的信号除了上面介绍的以外,还有INT,CHLD等. 当然,仅仅了解上面的知识,对于对进程的理解,还是不够的.下面,我会介绍更多的关于进程的知识. ,我们需要知道,并不是所有的进程都会被动态分配PID,至少有两个进程不会,就是kernel和init.kernel进程的PID是0, 一直是0,你无法从ps,top这些命令中看见它,当然,也无法用kill命令来终止它.init进程是主父进程,什么意思呢?每一个进程都需要一个父进程来监管它,父进程的作用就是接受子进程的返回值和状态值.而如果任何一个进程的父进程被终止,init就会成为它的父进程.init进程的PID固定是1,从理论上讲,你也可以终止它,但是千万不要试图这样做,它是用来清除呆死进程的,一旦将其kill,系统最终将崩溃. 除了他俩,还有一些进程是你不应该kill的,包括Zombies,/O Bound—A和Interception.事实上,我们很少解除这几个进程,普通用户也没必要接触它们,因此,在这里我不会详细解释它们的用途,有兴趣的朋友可以自己google. 其它进程,在保证系统本身不崩溃的情况下,一旦有异常你都可以试图去kill,不过要知道,kill命令只作用一次,也就是说,假如,我是说假如,这个进程在被kill后又重新自启动,那么你不得不再运行一次kill,这样循环.当然,此时,你就不能一直陪它kill下去了,追踪查看其自启动的根源才是正确的做法.你觉得这太麻烦了?好吧,还有一个懒办法,就是看看这个进程的名字,然后用kill name来阻止它.我知道很多地方都有介绍kill -9 -1这个命令,但是你需要知道,这个命令会kill你所有的进程,包括界面进程以及终端.如果你是root权限……它会连所有系统应用都一起 kill,然后,你的系统就将崩溃.用这个命令,你还不如直接按下你的重新启动按键,还更加省心……
进程的启动
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |