在Linux命令行中终止进程的操作命令

 更新时间:2023年12月17日 15:40:07   作者:wljslmz  
如果你想在linux上停止某个进程,你会怎么操作,本文小编给大家详细介绍了如何在 Linux 命令行中终止进程,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下

如果命令/进程在前台运行,您可以使用 Ctrl+C 终端快捷方式,但是,如果进程不可见(在后台运行),您可以使用专用命令“杀死它”。

“终止进程”是指在执行过程中停止进程,如果您知道进程 ID (PID),则可以使用 kill 命令,如下所示:

kill <signal> <PID>

在上面的语法中,signal指的是要发送终止的终止信号,并且PID指的是进程的 ID。

还有一个 killall 命令,我将在本文中讨论kill 和 killall 命令。

在你开始杀死进程之前,你应该知道一些事情,例如有哪些终止信号可用,如何找到 PID 等。

让我们先从信号开始。

Linux 中的终止信号

当一个进程被操作系统或用户终止时,即进程没有自行完成,它会被发送一个终端信号。

以下是可用的终止信号:

  • SIGHUP
    • 1:信号挂断:当控制它的终端关闭时发送到进程。
  • SIGINT
    • 2:信号中断:当用户终止进程时发送给进程的信号。(例如 Ctrl + X)
  • SIGKILL
    • 9:Signal Kill:立即退出进程的信号,不允许它保存当前状态。
  • SIGTERM
    • 15:信号终止:发送到信号以请求终止进程。该信号可以被进程忽略。但这是终止进程的首选方式,因为它可以在进程收到 SIGTERM 时释放资源。
  • SIGSTOP
    • 19(x86、ARM)、17(Alpha)、23(MIPS)、24(PARISC):信号停止:停止进程但稍后恢复的信号。

一般情况会使用信号 9 和 15

获取进程的PID

您还需要了解要终止的进程的详细信息,使用 kill 命令,您必须提供进程的 ID (PID),您可以从进程名称中获取 PID:

pidof exact_process_name

在 Linux 命令行中终止进程

让我们先看看 kill 命令,因为您将比 killall 更多地使用它。

使用 kill 命令

该kill命令要求您知道要终止的进程的 ID,以及可选的终止信号。

要简单地终止命令,请使用以下语法:

kill [signal] <PID>

向 PID 发送终止信号是可选的,如果未提供任何信号,则kill默认发送 SIGTERM ( 15),以正常终止所述进程结束。

我启动了sleep 命令的后台进程(它给了我一个 PID),让我们尝试使用kill命令杀死它。

杀死这个特定的实例sleep如下所示:

$  sleep 120 &
[1] 125686

$ kill 125686
[1]  + terminated  sleep 120

如果我想使用终止信号,我可以使用数值或信号本身:

$ sleep 120 &
[1] 125746

$ kill -SIGKILL 125746
[1]  + killed     sleep 120

####----##-----####

$ sleep 120 &
[1] 125759

$ kill -9 125759
[1]  + killed     sleep 120

如果 kill 命令没有指定信号,则默认使用 SIGTERM (15)。

使用 killall 命令

如果不知道某个进程的PID是多少,或者该进程有多个子进程,又想一次性杀死子进程和父进程,可以使用killall命令。

killall [signal] <process-name>

与kill命令类似,指定终止信号是可选的,当没有指定终止信号时,killall将发送 SIGTERM ( 15) 以优雅地关闭所述进程。

为了演示 的使用killall,我想杀死两个正在运行的 sleep 命令。

$ sleep 120 &
[1] 18609

$ sleep 2000 &
[2] 18612

$ killall sleep
[1]-  Terminated              sleep 120
[2]+  Terminated              sleep 2000

此外,您可以使用该-e标志来查找进程名称的完全匹配。

使用 pkill 命令

命令的替代命令kill是pkill命令,它是pgrep和kill命令的“组合”。

killall杀死所有具有匹配名称的进程。另一方面,pkill使用模式匹配来匹配进程并杀死它们。

下面是语法:

pkill [options] pattern

命令中可用的一些有用选项pkill如下:

  • -u: 特定所有者拥有的进程
  • -x: 完全匹配模式的进程
  • -signal: 指定终止信号(默认为 SIGTERM)

假设我的guest计算机上有一个用户当前不应该运行任何进程,如果有,我想终止它们,我怎样才能做到这一点?

$ ps aux | grep sleep
guest     126061  0.0  0.0   6664   428 pts/3    S    10:14   0:00 sleep 50

$ sudo pkill -u guest

请注意,我使用sudo的是因为我正在处理不属于我的用户的进程。

以上就是在Linux命令行中终止进程的操作命令的详细内容,更多关于Linux命令行中终止进程的资料请关注脚本之家其它相关文章!

相关文章

  • shell脚本实现公司项目部署交付环境预检查的思路

    shell脚本实现公司项目部署交付环境预检查的思路

    这篇文章主要介绍了shell脚本实现公司项目部署交付环境预检查的思路,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Shell脚本的条件测试和if条件语句使用方法

    Shell脚本的条件测试和if条件语句使用方法

    这篇文章主要介绍了Shell脚本的条件测试和if条件语句使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • linux压缩常用命令小结

    linux压缩常用命令小结

    这篇文章主要介绍了linux压缩常用命令知识,包括压缩解压缩方面的内容,本文给大家介绍的非常详细,需要的朋友参考下吧
    2017-03-03
  • Shell编程之/bin/bash和/bin/sh的区别浅析

    Shell编程之/bin/bash和/bin/sh的区别浅析

    在redhat的系统中,sh是一个到bash的软链接,但是如果运行如下程序会产生不一样的结果,下面这篇文章主要给大家介绍了关于Shell编程之/bin/bash和/bin/sh的区别的相关资料,需要的朋友可以参考下
    2022-07-07
  • Shell脚本实现监控iptables规则是否被修改

    Shell脚本实现监控iptables规则是否被修改

    这篇文章主要介绍了Shell脚本实现监控iptables规则是否被修改,本文直接给出实现代码,需要的朋友可以参考下
    2014-12-12
  • shell脚本中使用return和exit的方法

    shell脚本中使用return和exit的方法

    return和exit各有用途,合理使用可以使shell编程更规范可控,return是一个关键字, exit是一个函数,这篇文章主要介绍了shell脚本之如使用return和exit,需要的朋友可以参考下
    2023-08-08
  • csh脚本语法实例

    csh脚本语法实例

    这篇文章主要介绍了csh脚本语法实例,小编看起来和bash shell也差不太多,需要的朋友可以参考下
    2014-11-11
  • linux 比较两个文件夹diff不同 (diff命令, md5列表)

    linux 比较两个文件夹diff不同 (diff命令, md5列表)

    这篇文章主要介绍了linux 比较两个文件夹diff不同 (diff命令, md5列表),比较文件夹diff,可以直接使用diff命令,也可以比较文件md5列表,下面通过实例给大家介绍下,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • Linux中的搜索文件命令

    Linux中的搜索文件命令

    这篇文章主要介绍了Linux中的搜索文件命令的相关资料,需要的朋友可以参考下
    2017-07-07
  • 实现core文件自动生成配置文件的方法

    实现core文件自动生成配置文件的方法

    这篇文章主要介绍了实现core文件自动生成配置文件的方法,需要的朋友可以参考下
    2014-07-07

最新评论