当前位置: 代码网 > 服务器>服务器>Linux > 在Linux命令行中终止进程的操作命令

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

2024年05月18日 Linux 我要评论
如果命令/进程在前台运行,您可以使用 ctrl+c 终端快捷方式,但是,如果进程不可见(在后台运行),您可以使用专用命令“杀死它”。“终止进程”是指在执

如果命令/进程在前台运行,您可以使用 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命令行中终止进程的资料请关注代码网其它相关文章!

(0)

相关文章:

  • Shell正则表达式(元字符)的使用

    一、定义:元字符字符是这样一类字符,它们表达的是不同字面本身的含义二、分类:1、基本正则表达式元字符# ^ 行首定位[root@localhost ~]# grep root…

    2024年05月18日 服务器
  • linux常用命令之pip命令示例详解

    linux常用命令之pip命令示例详解

    前言pip 是 python 的包管理器,用于安装和管理 python 包。它提供了一种简单而强大的方式来管理项目所需的依赖项。本文将介绍 pip 命令的基本语... [阅读全文]
  • Shell位置变量&预定义变量的实现

    一、位置变量:1、位置变量语法:命令 参数1 参数2 参数3.........9以后特殊定义$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 ....2、示例:需求:制定…

    2024年05月18日 服务器
  • Shell脚本中[]和[[]]区别详解

    Shell脚本中[]和[[]]区别详解

    在 shell 脚本中,[] 和 [[]] 是用于条件测试的不同语法结构。它们有一些区别,主要体现在对字符串处理和表达式的支持上。单括号([ ]):[] 也被称... [阅读全文]
  • shell 计算器的实现示例

    简介shell 编程中的 $(( )) 、$[ ] 和 expr 仅支持整数运算,不支持小数运算,如果除法的结果为小数,那么按取整处理。小数计算需要依赖命令,这里介绍 bc、awk…

    2024年05月18日 服务器
  • Shell编程之循环语句示例详解

    Shell编程之循环语句示例详解

    一、使用 for 循环语句1. for 语句的结构使用 for 循环语句时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,直到变... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com