在Linux操作系统中杀死进程

时间:2020-07-27 12:59:05  来源:igfitidea点击:

Linux进程有时会变得缓慢或者无响应。
如果一个进程拒绝正常关闭,我们可能需要杀死该进程。
在本教程中,我们将查看一些命令行工具,让我们终止行为行为进程。

我们将要看看的两个命令是kill和killall。

kill命令 - 向进程发送信号

'kill'命令简单易于使用。
该命令并不完全杀死进程,但发送信号。

“kill”命令的语法如下:

kill -signal_number PID

信号开关是可选的。
如果我们没有给出信号号码,则发送终端信号,该信号是“sigterm”,其具有信号ID'15'。

如果进程拒绝顽固地终止,则使用信号ID'9'(Sigkill)努力地终止该进程。

kill -9 PID

“kill -9”立即终止进程,因此它不会有足够的时间来关闭该进程打开的文件。
因此,不建议使用'kill -9',除非它是必须的,而是使用'sigterm'(15)。
唯一的区别是终止进程可能需要更长的时间。

常用杀死信号

|kill信号| ID |描述|
|--- | --- | - - |
| sighup | 1 |被称为挂断信号。 Sighup将停止指定的进程并使用相同的进程ID重新启动它。 |
| stheitroadnt | 2 |弱kill信号。它通常会终止该计划,但不能保证工作。 |
| sigterm | 15 |这是默认的kill信号。它终止了这个进程。 |
| sigkill | 9 |立即终止该进程。如果Sigterm无法正常工作,那么应该仅作为最后一个手段使用的非常强大的信号。 |

如何找到进程ID?

“kill”命令在进程ID上工作,找到进程的“PID”运行“PS AUX”命令。

这将为我们提供所有运行进程的列表。
要更具体,可以使用“grep”命令过滤输出。
例如,运行以下命令以查找SSH服务器进程的PID。

ps aux | grep sshd

Killall(通过名称杀死所有进程)

“killall”命令终止匹配给定名称的所有进程。
例如,要在Linux桌面上杀死Google Chrome浏览器的所有运行实例,请输入以下命令:

killall chrome

但是,在没有'-e'选项的情况下运行Killall命令是不安全的,它代表完全匹配,并要求进程名称完全匹配。

killall -e chrome

另一个有用的命令选项是'-u',它允许我们指定用户名,以便仅终止属于该用户的进程。
例如,我们可以运行以下命令以终止属于MySQL用户的所有MySQL进程。

killall -u mysql

就像kill命令一样,如果未指定信号,则使用默认值为15.