杀死进程最安全的方法是单纯使用kill命令。

首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:

# kill -pid

注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。

为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。


*确定要杀死进程的PID或PPID

# ps -ef | grep httpd

*以优雅的方式结束进程

# kill -l PID

-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。

但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。


*TERM信号

给父进程发送一个TERM信号,试图杀死它和它的子进程。

# kill -TERM PPID


*killall命令

killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。

# killall httpd


*停止和重启进程,如下:

# kill -HUP PID

该命令让Linux温柔的执行进程关闭,然后立即重启。

在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启时可以执行此命令(例如重启nginx经常用到这个命令)。

*必杀技 

kill -9 PID