Linux杀手命令初学者教程(5个例子)

有时,在Linux机器上工作时,会发现应用程序或命令行进程卡住(变得无法响应)。然后在那些...

Linux杀手命令初学者教程(5个例子)

有时,在Linux机器上工作时,会看到应用程序或命令行进程卡住(变为无响应)。 那么在这些情况下,终止它是唯一的出路。 Linux命令行提供了一个可以在这些场景中使用的实用程序。 这就是所谓的杀人

在本教程中,我们将使用一些易于理解的示例来讨论kill的基本知识。 但在这之前,值得一提的是本文中的所有示例都已在Ubuntu 16.04机器上进行了测试。

Linux kill命令

kill命令通常用来杀死一个进程。 它在内部发送一个信号,根据你想要做的事情,你可以使用这个工具发送不同的信号。 以下是该命令的语法:

kill [options] <pid> [...]

以下是该工具的手册页如何描述它:

The default signal for kill is TERM. Use -l or -L to list available signals. Particularly useful 
signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways:
-9, -SIGKILL or -KILL. Negative PID values may be used to choose whole process groups; see the PGID
column in ps command output.  A PID of -1 is special; it indicates all processes except the kill
process  itself and init.

下面的Q&A样式的例子应该让你更好地了解kill命令是如何工作的。

Q1。 如何使用kill命令终止进程?

这非常简单 - 您只需要获取要杀死的进程的pid,然后将其传递给kill命令。

kill [pid]

例如,我想杀死我的系统上的“gthumb”进程。 所以我首先使用ps命令来获取应用程序的pid,然后将其传递给kill命令来终止它。 以下是显示所有这些的截图:

如何使用kill命令终止一个进程

Q2。 如何发送自定义信号?

正如介绍部分已经提到的那样,TERM是kill发送给相关应用程序/进程的默认信号。 但是,如果需要,可以使用-s命令行选项发送任何其他支持kill的信号。

kill -s [signal] [pid]

例如,如果某个进程没有响应TERM信号(允许进程在退出前进行最终清理),则可以使用KILL信号(不允许进程进行任何清理)。 以下是在这种情况下需要运行的命令。

kill -s KILL [pid]

Q3。 你可以用kill发送什么信号?

当然,下一个你会想到的逻辑问题是如何知道你可以使用kill来发送哪些信号。 那么,幸好有一个命令行选项-l列出了所有支持的信号。

kill -l

以下是我们系统上面的输出命令:

什么所有信号,你可以发送使用杀死

Q4。 信号可以发送的其他方式是什么?

在前面的例子之一中,我们告诉过你是否要发送KILL信号,你可以通过以下方式来完成:

kill -s KILL [pid]

不过,还有其他一些选择:

kill -s SIGKILL [pid]

kill -s 9 [pid]

可以使用前面例子中已经讨论过的-l选项来知道相应的数字。

Q5。 如何一次性杀死所有正在运行的进程?

如果用户想要杀死所有可能的进程(这取决于他们的特权级别),那么不用指定大量的进程ID,他们可以简单地通过-1选项来杀死。

例如:

kill -s KILL -1

结论

kill命令对于理解和使用非常简单。 从它提供的信号选项列表来看,有一个轻微的学习曲线,但正如我们在这里解释的,还有一个选项可以快速查看该列表。 只要练习我们讨论过的任何事情,你就应该好好去。 有关更多信息,请转到该工具的手册页