在linux上强制停止进程应该用哪个命令,如何在Linux系统中使用命令终止无响应进程...
有多种工具可用于从命令行终止无响应或挂起的进程,包括kill,pkill和killall。这些命令通过向这些无响应的进程发送特定信号来工作。您将需要进程ID或PID信息,以便可以向他们发送所需的终止信号。您可以使用命令来检索无响应进程的PPID(如何使用命令获取Linux进程的PID?)。一旦获得此信息,就该彻底终止它。有几个命令允许我们执行此操作,例如kill,pkill和killall。我们将
有多种工具可用于从命令行终止无响应或挂起的进程,包括kill,pkill和killall。这些命令通过向这些无响应的进程发送特定信号来工作。您将需要进程ID或PID信息,以便可以向他们发送所需的终止信号。
您可以使用命令来检索无响应进程的PPID(如何使用命令获取Linux进程的PID?)。一旦获得此信息,就该彻底终止它。有几个命令允许我们执行此操作,例如kill,pkill和killall。我们将在以下各节中逐一介绍它们的工作方式。
方法1:使用kill命令
由于kill命令的简单性和鲁棒性,它被Linux管理员广泛使用。它需要过程的PID和信号。内核根据该信号终止/停止进程的执行。您可以使用下一个命令查看kill命令的所有可用信号。
$ kill -l
如您所见,kill提供了64种不同的信号。但是,本指南仅讨论其中两个。它们是信号9(SIGKILL)和信号15(SIGTERM)。信号或信号15是消除无响应进程的安全方法。另一方面,SIGKILL或信号9强行终止Linux进程。
$ kill -9 8631
$ kill -KILL 8631
上面的命令是等效的,它们将强制终止具有PID 8631的进程。这就是我系统中进程“ nano”的PPID。将其替换为系统中无响应进程的PID。
$ kill -15 8631
$ kill -TERM 8631
上面的命令也是等效的,可以正常终止进程。这就是为什么要花一些时间才能终止该过程。此外,如果进程由另一个用户拥有,则可能需要在kill命令之前附加sudo。
方法2:使用pkill命令
pkill命令是Linux中功能最丰富的进程管理命令之一。它使我们能够根据其名称,PID,所有者和其他运行时属性来取消无响应的进程。对于入门用户或不熟悉许多标准终端命令的用户来说,这是一个完美的工具。
$ pkill nano
$ pkill 8631
$ pkill -e nano
$ pkill -f nano
您可以使用上述任何pkill命令来终止Linux中的僵尸/无响应进程。如果要确认Linux Kill作业,请使用-e选项。pkill命令还允许用户发送特定的终止信号。
方法3:使用killall命令
killall命令允许用户根据其名称终止无响应的进程。它更易于使用,但如果不谨慎,可能会造成麻烦。由于killall会根据名称终止进程,因此总是有机会最终偶然终止进程。例如,如果系统中有可用的nano的不同版本,则第一个示例将终止所有这些版本。
$ killall nano
$ killall --verbose nano
$ killall --interactive nano
$ killall --signal KILL nano
第一个示例显示了Linux中killall命令的基本用法。第二个命令将报告终止作业是否成功,第三个命令将在终止过程之前要求用户确认。默认情况下,killall使用SIGTERM信号终止进程。但是,您可以手动指定信号,如上例所示。
方法4:使用方便的单行
Linux的真正魅力在于,它允许用户根据自己的需求创建复杂的命令组合。
$ nano > /dev/null &
$ kill -9 $(pgrep nano)
$ ps aux | grep -e 'nano' | awk '{print $2}' | xargs kill -9
在第一个示例中,我们使用了shell插值将进程“ nano”的PID传递给Linux kill命令。第二个示例利用几个日常终端命令和I / O重定向来终止该过程。
方法5:使用Linux Shell脚本终止多个进程
有时,用户可能希望终止多个过程。我们可以通过编写简单的shell脚本轻松地自动化这些任务。如果您对此主题感兴趣,请查看我们先前关于Linux Shell脚本的指南。以下脚本将检索您要终止的进程的PPID,然后使用终止信号终止它们。
$ nano proc-killer.sh
#!/usr/bin/env bash
for pro in "$@"
do
pid=$(pgrep $pro | head -1)
echo $pid
comm="kill -9 $pid"
eval $comm
done
现在,保存该文件并通过发出以下命令来添加执行权限。
$ chmod +x proc-killer.sh
现在,您可以向该脚本传递要终止的进程的名称。
$ ./proc-killer.sh nano gedit vlc
只需将参数替换为系统中无响应Linux进程的名称。
更多推荐
所有评论(0)