一个终止运行的信号,此时的 kill 命令才是名至实归。事实上如果我们不给 kill 命令传递信号参数,它默认传递终止进程运行的信号给进程!这是 kill 命令最主要的用法,也是本文要介绍的内容。
一个前台进程使用 Ctrl + C 就可以了。对于一个后台进程就须用 kill 命令来终止。我们会先使用 ps、top 等命令获得进程的 PID,然后使用 kill 命令来杀掉该进程。
[options] <span style="color: #000000"> […] : 把信号发送给列出的所有进程。
options :-
<span style="color: #000000"> : 指定发送给进程的信号,指定信号的名称或号码都可以。
</span>-l : 列出所有信号的<a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>和号码。</pre>
$ -l

名称内容</tr>
<tr>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">1 </td>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">SIGHUP</td>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">启动被终止的程序,可让该进程重新读取自己的配置文件,类似重新启动。</td>
</tr>
<tr>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">2</td>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">SIGINT</td>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">相当于用键盘输入 [ctrl]-c 来中断一个程序的进行。</td>
</tr>
<tr>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">9</td>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">SIGKILL</td>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">代表强制中断一个程序的进行,如果该程序进行到一半,那么尚未完成的部分可能会有“半产品”产生,类似 vim会有 .filename.swp 保留下来。</td>
</tr>
<tr>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">15</td>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">SIGTERM</td>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">以正常的方式来终止该程序。由于是正常的终止,所以后续的动作会将他完成。不过,如果该程序已经发生问题,就是无法使用正常的方法终止时,输入这个 signal 也是没有用的。</td>
</tr>
<tr>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">19</td>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">SIGSTOP</td>
<td><span style="font-family: Microsoft YaHei; font-size: 15px">相当于用键盘输入 [ctrl]-z 来暂停一个程序的进行。</td>
</tr>
$ - pid
退出。所谓的正常退出是指按应用程序自己的退出流程完成退出,这样就可以清理并释放资源。比如 vim 程序,如果是正常的退出,就会删除掉临时文件 *.swp。退出进程的正确方式,那它也应该是最常用的方式,因而我们可以省略参数 -15。
$ pid
默认发送信号 15 给目标进程。
退出时,我们就需要通过非常的手段直接终结掉进程。所谓的非常手段就是传递信号 9 给目标进程!
$ - pid
文件 *.swp 没有被删除。