kill 命令有一个参数是-signal,如果你在使用kill命令时不键入指定的signal,那么kill命令将会使用默认的signal:SIGTERM
下面的命令可以打印出所有的64个signal,默认的signal是第15个:
kill -l
我们不用把所有的signal都记下来,只用记住几个常用的即可。
-SIGTERM, -SIGSTOP , -SIGCONT, -SIGKILL
SIGTERM signal将会使进程终止并清除。
比如我们先创建一个进程
(while true; do echo -n "kill the process" >> ~/output.file; sleep 1; done) &
kill -SIGSTOP %1
进程被停止
kill -SIGCONT %1
进程继续运行
SIGKILL 用来终止那些需要立即停止的进程,比如你监测到的病毒程序,需要紧急终止它的运行。
如果我们需要终止一系列的进程,这些进程与某个服务有关,但是kill只能终止一个进程,无法做到终止与某服务相关的一系列进程,我们可以用pkill命令做到这一点。
pgrep httpd -l
这个命令可以查看现在运行中的和httpd服务相关的进程。
pkill httpd
pkill httpd -l
如果我们用pkill 终止了这个服务,那么和这个服务相关的进程都会被终止。