类Unix和Linux的操作系统进程使用信号来相互通信。例如,如果我们可以终止一个进程,我们需要向我们想要终止的进程发送一个信号。此信号将由SIGTERM发送 kill
或类似命令。在本教程中,我们将检查SIGTERM信号并与SIGKILL信号进行比较。
null
SIGTERM公司
SIGTERM信号是用于终止程序的通用信号。SIGTERM提供了一种终止程序的优雅方法。这很有用,因为SIGTERM可以用不同的方法处理,比如阻塞、忽略等。这是终止应用程序或程序的礼貌方法。kill命令的默认行为是向进程发送SIGTERM信号。
向进程发送SIGTERM信号
如前所述,我们可以通过简单地使用 kill
具有进程ID或简单PID的命令。首先,我们需要用pgrep命令获取进程ID,如下所示。在这个例子中,我们想要终止Firefox进程。
$ pgrep firefox
我们将使用 kill
在本例中,进程ID为2229的命令默认行为。
$ kill 2229
向根用户或其他用户进程发送SIGTERM信号
在某些情况下,我们可能需要发送SIGTERM信号到 root
或其他用户进程。我们可以用 sudo
在其他命令中获取 root
特权,使我们有能力杀死Linux系统中的所有进程。
$ sudo kill 2229
SIGTERM vs SIGKILL
SIGTERM和SIGKILL提供了类似的功能。两者都杀死给定的进程或程序。但也有一些小分歧。
- SIGTERM试图礼貌地杀死另一边SIGKILL会以粗暴的方式杀死
- SIGTERM可以处理,但是SIGKILL不能处理
- SIGTERM是第一种终止进程的方法,但它不起作用。可以使用SIGKILL。
相关文章: Linux下如何强制用户注销?
向进程发送SIGKILL信号
如果SIGTERM不能像我们期望的那样工作,我们可以使用SIGKILL这种严酷的方式。我们可以用 kill
命令 -9
指定SIGKILL信号的选项。
$ kill -9 2220
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END