如何在 Linux 中终止进程

2023-10-19

您是否遇到过这样的情况:您启动了一个应用程序,但在使用该应用程序时突然变得无响应并意外崩溃?您尝试再次启动应用程序,但没有任何反应,因为原始应用程序进程从未真正完全关闭。

好吧,我们所有人都曾在某个时刻发生过这种事,不是吗?解决方案是终止或终止应用程序进程。但如何呢?

幸运的是,Linux 中有几个实用程序可以让您终止错误的进程。

在这篇文章中,我们将向您展示如何使用kill, killall, and pkillLinux 中终止进程的命令。

这些工具之间的主要区别在于kill根据进程 ID 号 (PID) 终止进程,而killall and pkill命令根据进程的名称和其他属性终止正在运行的进程。

普通用户可以杀死自己的进程,但不能杀死属于其他用户的进程,而 root 用户可以杀死所有进程。

系统终止信号#

kill, killall, and pkill向指定进程或进程组发送给定信号。当没有指定信号时,每个工具都会发送15 (TERM).

最常用的信号是:

  • 1(-HUP):重新加载进程。
  • 9(-KILL):终止进程。
  • 15(-TERM):优雅地停止进程。

信号可以通过三种不同的方式指定:

  • 使用数字(例如 -1)
  • 带有“SIG”前缀(例如-SIGHUP)
  • 没有“SIG”前缀(例如-HUP)。

Use the -l列出所有可用信号的选项:

kill -l  # or killall -l

下面概述的步骤适用于所有 Linux 发行版。

使用终止进程kill命令#

终止一个进程kill首先,你需要找到进程PID。您可以使用不同的命令来执行此操作,例如top, ps , pidof, and pgrep .

假设 Firefox 浏览器没有响应,您需要终止浏览器进程。要查找进程 ID,请使用pidof命令:

pidof firefox

该命令将打印所有 Firefox 进程:

2551 2514 1963 1856 1771

一旦您知道 Firefox 会处理 PID 并终止所有这些 PID,请发送TERM signal:

kill -9 2551 2514 1963 1856 1771

使用终止进程killall命令#

The killall命令终止与指定名称匹配的所有程序。

使用与之前相同的场景,您可以通过键入以下内容来终止 Firefox 进程:

killall -9 firefox

killall接受多个选项,例如向给定用户拥有的进程发送信号、根据正则表达式匹配进程名称以及创建时间。您可以通过键入以下内容获取所有选项的列表killall(不带任何参数)在您的终端上。

例如,要终止以用户“sara”身份运行的所有进程,您可以运行以下命令:

sudo killall -u sara

使用终止进程pkill命令#

pkill终止与命令行上给出的模式匹配的进程:

pkill -9 firefox

进程的名称不必完全匹配。

With pkill您还可以向给定用户拥有的进程发送信号。要仅终止用户“sara”拥有的 Firefox 进程,您可以输入:

pkill -9 -u sara firefox

结论#

使用以下命令终止无响应的程序kill, killall and pkill命令是一项简单的任务。您只需要知道进程名称或PID。

如果您有任何问题或反馈,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Linux 中终止进程 的相关文章

  • 使用终端将信息输入 Javascript

    我想获取 C 程序的输出并将其输入到 javascript 文件的标准输入中 但是我无法使用该方法将任何内容推送到标准输入中 node example js lt test txt 因为我收到以下错误 示例 js 35 stdin setR
  • 在Linux伪终端中执行从一个终端发送到另一个终端的字符串

    假设我有一个终端 其中 tty 的输出是 dev pts 2 我想从另一个终端向第一个终端发送命令并执行它 使用 echo ls gt dev pts 2 仅在第一个终端中打印 ls 有没有办法执行字符串 不 终端不执行命令 它们只是数据的
  • 无法打开本地终端

    我尝试在 Android Studio 中初始化我的终端 但它给了我错误 它说 无法打开本地终端 java io IOException 无法创建 PTY 我的电脑运行的是 Windows 10 如何解决这个问题 当您从 Github 存储
  • 如何清除整个终端(PowerShell)

    我有一个问题 在powershell中使用clear或cls命令仅清除终端的可见部分 我想知道如何清除整个终端 顺便说一句 我使用 VSCode tl dr 问题是关于清零的both屏幕和回滚缓冲区 in the 综合终端 of 视觉工作室
  • 如何在Windows 8上执行“jps”命令?

    我想查看我的工作 java 进程 所以我想执行jps m 但在我的新 Windows 8 机器上出现此错误消息 Microsoft Windows Version 6 3 9600 c 2013 Microsoft Corporation
  • 从 pod 安装库时出现错误

    我收到未定义的方法squish for
  • Linux命令列出所有可用命令和别名

    是否有一个 Linux 命令可以列出该终端会话的所有可用命令和别名 就好像您输入 a 并按下 Tab 键一样 但针对的是字母表中的每个字母 或者运行 别名 但也返回命令 为什么 我想运行以下命令并查看命令是否可用 ListAllComman
  • 如何不断刷新屏幕并实时更新[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在linux上写一个C程序 不断刷新屏幕并实时更新 例如类似于top终端中的命令 谁能指出我正确的方向 为了保持它跨终端类型的可移
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • 从 Xcode 中的存储库中删除未引用的图像

    我从资源文件夹中删除了 default png 因为我想要为加载屏幕使用不同的图像 但我只是删除了引用 这显然是一件愚蠢的事情 我将新图像拖到资源中并尝试将名称更改为 Default png 但它不允许我这样做 我认为这是因为第一个 Def
  • linux命令中括号的用途是什么[重复]

    这个问题在这里已经有答案了 我在 Linux 终端中运行以下命令 谁能告诉我 Linux 终端中括号和以下命令的用途是什么 echo GET HTTP 1 0 echo 主机 www google com echo 数控 www googl
  • 设置 Git osxkeychain 错误

    我正在设置 Git 并且正在关注http lifehacker com 5983680 how the heck do i use github http lifehacker com 5983680 how the heck do i u
  • 减少每日状态表以仅包含状态更改

    我有一个包含 10 万以上用户的大型每日状态表 5 7 亿行 目前它位于 MySQL 或 CSV 中 该表包含三列 user id status 和 date 理想情况下 我希望将表缩减为一个新表 其中包含每个状态期间的 user id s
  • Dpkg:警告:包“x”的文件列表文件丢失;假设 Ubuntu 16.04 中当前没有安装包

    我使用 Ubuntu 16 04 和 lubunut 桌面环境 当我这样做时 我遇到了以下问题超过3天apt get upgrade 我不知道问题是什么以及如何解决 注意 3天前我尝试升级Linux header 4 4 66 但显示错误
  • 如何清理 Runtime.exec() 中使用的用户输入?

    我需要通过命令行调用自定义脚本 这些脚本需要很少的参数并在 Linux 机器上调用 当前版本容易出现各种shell注入 如何清理用户给出的参数 参数包括登录名和路径 Unix 或 Windows 路径 用户应该能够输入任何可能的路径 该路径
  • RVM 无法通过 SSH 工作(作为一项功能)

    我刚刚在 Debian 6 服务器上安装了 RVM 一开始没有任何问题 但是 在一切设置完成后 我无法在终端中运行 RVM 我打字时收到的消息rvm use is RVM is not a function selecting rubies
  • 在 MacOS 上重新启动终端而不关闭

    如何在不关闭窗口的情况下重新启动当前的 MacOS 终端会话 在Linux中我使用exec bash但在这种环境下它不起作用 我对 bash profile 提示 别名等 我想在不关闭它并再次打开的情况下查看 只需输入命令 exec bas

随机推荐

  • 在 Pandas 中使用 loc 和 MultiIndex DataFrame

    在之前的教程中 我们讨论了locproperty 一种基于标签的数据选择方法 但是您是否知道在使用 loc 处理多级索引时可以优化您的选择 本教程将揭示在 Pandas 中使用 loc 和 MultiIndex DataFrame 的强大功
  • Python图像处理教程(使用OpenCV)

    在本教程中 您将学习如何使用 OpenCV 库在 Python 中处理图像 OpenCV 是一个用于实时图像处理的免费开源库 它用于处理图像 视频甚至直播 但在本教程中 我们将仅将处理图像作为第一步 在开始之前 我们先安装 OpenCV 目
  • 安装和配置 Linux LDAP 服务器

    两天前 一位网站访问者在网站上搜索 LDAP 但没有找到任何结果 这促使我发一篇有关 LDAP 服务器的帖子 因此我们填补了空白 将喜爱的内容带给访问者 目录 hide 1 什么是LDAP 2 LDAP 的用途 3 LDAP 服务器实施
  • Python 海象运算符(Python 3.8 赋值表达式)

    Python 海象运算符 正式名称为赋值表达式运算符 是在 Python 3 8 中引入的 它由冒号后跟等号表示 Python 社区将其称为 海象运算符 因为它类似于海象的一双眼睛和獠牙 目录 hide 1 对海象操作员的需求 2 Walr
  • 15 个用于网络诊断的 Linux ping 命令示例

    感谢 Linux 我们可以使用许多促进网络管理和诊断的工具 从这个意义上说 Linux ping 命令是系统管理员和网络管理员最有用的工具之一 它的基本功能是确定网络中的一台主机是否可达 然而 在这篇文章中 我们将讨论 Linux Ping
  • Matplotlib 教程(使用 pyplot 绘制图形)

    Matplotlib 是 Python 中的一个库 可创建 2D 图形来可视化数据 可视化总是有助于更好地分析数据并增强用户的决策能力 在本 matplotlib 教程中 我们将绘制一些图形并更改一些属性 如字体 标签 范围等 首先 我们将
  • 如何在 Debian 11 中创建仅 SFTP 用户

    SFTP SSH 文件传输协议 是一种安全文件协议 用于通过加密的 SSH 传输会话访问 管理和传输文件 安全第一是系统管理员的经验法则 在某些情况下 我们需要允许远程用户访问我们系统上的文件系统 但您不想允许他们获得 shell 这将为您
  • 如何使用 Curl 忽略 SSL 证书检查

    在通过 SSL 或 HTTPS 连接到服务器的应用程序中使用 Curl 时 验证服务器的 SSL 证书是默认功能 这确保了通信的安全性以及服务器的身份 但是 在某些情况下 可能需要忽略或绕过 SSL 证书检查 例如在开发环境 测试或处理自签
  • 博客基础知识:成功入门指南

    在数字时代 博客已成为自我表达 教育甚至创收的有影响力的平台 无论您是渴望与世界分享您的热情的业余爱好者 希望建立在线形象的专业人士 还是计划利用博客开展业务的企业家 这本综合指南都将为您提供基础知识和其他知识 欢迎来到 博客基础知识 您成
  • Iptables:常见防火墙规则和命令

    Iptables 是一个功能强大的防火墙实用程序 用于保护 Linux 系统免受未经授权的网络流量的侵害 它是一个命令行工具 提供灵活且可定制的方式来配置和管理防火墙规则 在本文中 我们将介绍 Iptables 的基础知识 包括一些最常见的
  • 如何在 Ubuntu 20.04 上安装 Dotnet Core

    NET Core 是一个免费的开源软件框架 其设计时考虑了 Linux 和 macOS 它是 NET Framework 的跨平台继承者 适用于 Linux macOS 和 Windows 系统 NET Core 框架已经提供了用于引导项目
  • 每个周日(每周)运行一个 Cron 作业

    许多应用程序需要每周执行 cron 作业来执行一些任务 例如 执行每周维护 清理磁盘空间 清理邮件列表和其他任务 您可以在一周中的任何一天运行每周任务 需要CPU和内存的作业需要消耗CPU和内存 这些工作最好在周末进行 安排周日的 Cron
  • 如何在 CentOS/RHEL 7 上安装 NVM

    NVM代表 Node Version Manager 是一个用于管理 Node 版本的命令行实用程序 有时您需要部署具有不同 2 个版本的多个节点应用程序 管理不同 2 项目的多个 Node js 版本对于开发人员来说是一件痛苦的事情 但
  • 如何在 Fedora 29-25、CentOS 7/6 上安装 VirtualBox 来宾添加

    The 虚拟盒子Guest Additions 提供了一些设备驱动程序和应用程序 用于优化来宾操作系统的性能和可用性 它安装在来宾操作系统内 因此 您需要在系统上运行的每个虚拟机上安装 我建议安装或升级 VirtualBox最新版本优先 本
  • 如何在 Bash 中转义单引号

    Bash 脚本对于开发人员 系统管理员以及任何需要在 Unix 或 Linux 系统上自动执行任务的人来说是一项至关重要的技能 有时 您需要在 bash 脚本的字符串中使用单引号 但是 由于 bash 解释单引号的方式 如果处理不当 可能会
  • 如何在 Ubuntu 18.04 和 16.04 上安装 ownCloud 10

    ownCloud使用 Web 界面提供数据访问 它还提供跨设备同步和共享的选项 一切都在您的控制之下 使用 ownCloud 我们可以轻松地对每个用户的文件 ACL 实施限制 ownCloud 提供桌面客户端 Windows MAC Lin
  • 如何使用预准备语句防止 PHP 中的 SQL 注入

    SQL 注入是一种常见的攻击形式 针对使用 SQL 数据库的 Web 应用程序 在此类攻击中 攻击者利用应用程序代码中的漏洞注入恶意 SQL 语句 这些语句可能会危害数据库并可能泄露敏感信息 PHP 是一种流行的 Web 开发语言 通常与
  • 了解 Python 中的区分大小写

    Python 是使用最广泛的编程语言之一 以其简单性和可读性而闻名 然而 与许多语言一样 它具有新手和经验丰富的程序员都应该理解的独特特征 其中一项特征是区分大小写 在本指南中 我们将深入了解 Python 中的大小写敏感性及其重要性 什么
  • 如何设置 SFTP Chroot Jail

    如果您是管理 Linux 服务器的系统管理员 您可能需要向某些用户授予 SFTP 访问权限 以将文件上传到他们的主目录 默认情况下 可以通过SSH SFTP等方式登录系统的用户SCP可以浏览整个文件系统 包括其他用户的目录 如果这些用户是可
  • 如何在 Linux 中终止进程

    您是否遇到过这样的情况 您启动了一个应用程序 但在使用该应用程序时突然变得无响应并意外崩溃 您尝试再次启动应用程序 但没有任何反应 因为原始应用程序进程从未真正完全关闭 好吧 我们所有人都曾在某个时刻发生过这种事 不是吗 解决方案是终止或终