一、最安全的Kill用法
结束进程最安全的方法是单纯使用kill命令,不加任何修饰符,不带任何标志。首先使用ps -ef命令确定要结束进程的PID,然后输入命令:
# kill -pid
注意:这种用法的kill命令一般均能达到结束进程的目的,并把进程相对应的资源释放给系统。但是,如果此进程启动了子进程,则会只结束父进程,子进程仍在运行,因此仍消耗资源。因此为了防止此种情况,我们应该在结束此进程前先查到此进程的所有子进程。命令为:
# ps -ef | grep httpd
查到子进程后先结束掉即可。
二、加l选项的kill命令
# kill -l PID
-l选项告诉kill命令用启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令试图结束所留下的子进程。但这个命令的成功率并不是100%,有些时候我们仍然需要用手工的方法结束掉此进程的子进程
三、用TERM信号的kill命令
给父进程发送一个TERM信号,试图结束它和它的子进程
# kill -TERM PPID
四、killall命令
killall命令结束同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
# killall httpd
五、停止和重启进程
有时只想对进程进行简单的停止和重启进程。命令如下:
# kill -HUP PID
该命令让Linux重启形式的的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。
六、kill -9 PID,必杀进程
这个强大但危险的命令迫使进程在运行时突然终止,进程在结束后不会自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。
如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。
更新时间:2010-5-2