Linux 中的 pkill 命令

2023-10-30

本文涵盖了 Linux 的基础知识pkill命令。

pkill是一个命令行实用程序,它根据给定的条件向正在运行的程序的进程发送信号。可以通过进程的完整名称或部分名称、运行进程的用户或其他属性来指定进程。

The pkill命令是的一部分procps (or procps-ng) 软件包,几乎所有 Linux 发行版都预安装了该软件包。pkill基本性是围绕pgrep只打印匹配进程列表的程序。

如何使用pkill命令#

语法为pkill命令如下:

pkill [OPTIONS] <PATTERN>

配套的<PATTERN>使用扩展正则表达式指定。

当没有任何选项调用时,pkill发送15 (TERM) 向与给定名称匹配的所有正在运行的程序的 PID 发出信号。例如,要正常停止所有 Firefox 进程,您可以运行:

pkill -15 firefox

命令返回0当至少一个正在运行的进程与请求的名称匹配时。否则,退出代码 is 1。这在编写 shell 脚本时很有用。

要向匹配的进程发送不同的信号,请调用pkill命令与--signal选项,后跟数字或符号信号名称。发送信号的另一种方法是运行pkill后跟信号名称或编号,前缀为连字符 (-).

Use the kill -l命令列出所有可用信号。

最常用的信号是:

  • 1 (HUP): 重新加载进程。
  • 9 (KILL): 杀死一个进程。
  • 15 (TERM):优雅地停止进程。

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

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

例如,要重新加载 Nginx您将运行的进程:

pkill -HUP nginx

pkill使用正则表达式来匹配进程名称。使用pgrep命令在向匹配的进程发送信号之前打印它们。例如,要列出名称中包含“ssh”的所有进程:

1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent

如果您只想向名称与搜索模式完全相同的进程发送信号,您可以使用:

pkill '^ssh$'
插入符号 (^) 字符匹配字符串的开头,以及美元$在最后。

默认情况下,pkill仅与进程名称匹配。什么时候-f使用选项时,该命令与完整参数列表匹配。如果命令包含空格,请引用整个命令:

pkill -9 -f "ping 8.8.8.8"

Use the -u选项告诉pkill匹配给定用户运行的进程:

pkill -u mark

要指定多个用户,请用逗号分隔他们的名称:

pkill -u mark,danny

您还可以组合选项和搜索模式。例如发送KILL向所有在用户“mark”下运行且名称中包含“gnome”的进程发出信号,您可以输入:

pkill -9 -u mark gnome

要仅显示最近(最旧)或最近(最新)启动的进程,请使用-n(最新)或-o(对于最旧的)选项。

例如,杀死最近创建的screen :

pkill -9 -n screen

结论#

The pkill命令用于根据不同的标准向正在运行的程序发送信号。

欲了解更多信息pkill命令,访问杀人页面或类型man pkill在您的终端中。

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

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

Linux 中的 pkill 命令 的相关文章

  • Mac 10.8.3 上的 fltk 安装

    我正在挣扎fltk在我的 Mac 上安装 我想在Xcode 4 下载文件并解压缩后 尝试按照说明操作 2 3 Configuring FLTK Stay in your FLTK source code directory Type aut
  • 无法打开本地终端

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

    我在尝试编写函数时写了一个错误的命令 我在函数中犯了一个错误 并且想在没有完成函数的情况下退出它 并且我想退出它 但是终端的命令提示符不允许我退出 我试过这个 https unix stackexchange com questions 4
  • 在 Mac 上使用 JRE 打开 jar 文件

    我有一个 jar 文件 旨在通过命令行运行 我不打算在运行应用程序的机器上进行任何java开发 我的思考过程是 因此我应该只需要JRE而不是JDK 此外 JDK 大约是 JRE 的 4 倍 我不想下载它 在 Mac 上安装 JRE 时 它不
  • 在Python中通过sys.stdout写入unicode字符串

    暂时假设一个人无法使用print 从而享受自动编码检测的好处 所以这给我们留下了sys stdout 然而 sys stdout太蠢了不做任何合理的编码 http bugs python org issue4947 现在人们阅读 Pytho
  • Gulp 错误:找不到模块“jshint/src/cli”

    因此 我重新安装了 El Capitan 并再次尝试这些任务运行程序 我正在跟进sitepoint 的 Gulp js 简介 http www sitepoint com introduction gulp js 但当我尝试运行时 我陷入了
  • 如何在 Xamarin.Mac 中执行终端命令并读入其输出

    我们正在编写一个 Xamarin Mac 应用程序 我们需要执行像 uptime 这样的命令 并将其输出读取到应用程序中进行解析 这可以做到吗 在 Swift 和 Objective C 中都有 NTask 但我似乎无法在 C 中找到任何示
  • 如何通过终端运行 JavaScript 脚本?

    例如 如果您要运行 Python 脚本 您可以输入python 文件名 py或者如果你想运行 C 程序制作文件名 then 文件名 你如何做到这一点 js files 另一个答案是 NodeJS Node js 是一个基于 Chrome 的
  • .profile 无法从 Mac 终端运行

    我有一个 profile 文件 我正在终端中读取并使用别名 但在某些时候 别名由于没有明确的原因而停止工作 其他命令仍在工作 为了快速修复 我删除了 rm 并在用户目录中重新创建了 profile 文件 我可以看到 至少在该目录中没有 ba
  • 设置 Git osxkeychain 错误

    我正在设置 Git 并且正在关注http lifehacker com 5983680 how the heck do i use github http lifehacker com 5983680 how the heck do i u
  • 如何在 Vim 中创建行号和文本之间的边框

    我希望在行号右侧和文本左侧有一条细边框线 您可以使用不同的颜色来突出显示LineNr 例如 hi LineNr cterm bold ctermbg gray ctermfg black gui bold guibg gray guifg
  • 我如何知道用户在使用 ncurses (Linux) 的控制台中按下了 ESC 键?

    I have a problem in detecting whether I just got a plain ESC key just code 27 or whether it was another special key such
  • 为 CocoaPods 插件设置 Xcode

    我正在尝试设置终端 Xcode 以便正确工作Xcode CocoaPods 插件 https github com kattrali cocoapods xcode plugin 当我从插件运行集成 cocoapods 选项时 我收到一条消
  • 如何在 VS code 上安装 Windows 终端

    一切尽在标题 我也是俄罗斯人 这是谷歌翻译 我在任务管理器中打开该进程并转到文件位置 出现拒绝访问错误 但在计算机控制的帮助下已解决 但我不知道如何在 VS Code 中打开这个特定的终端 我首先介绍了OpenConsole 是的 但它只是
  • RVM 无法通过 SSH 工作(作为一项功能)

    我刚刚在 Debian 6 服务器上安装了 RVM 一开始没有任何问题 但是 在一切设置完成后 我无法在终端中运行 RVM 我打字时收到的消息rvm use is RVM is not a function selecting rubies
  • OS X - 输入“grails”命令后终端重置

    在我的 bash profile 中 我有以下几行 export GRAILS HOME usr share java grails export PATH PATH GRAILS HOME bin GRAILS HOME 是同一目录中 g
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查
  • 为什么同一个curl命令在windows和linux下输出不同的东西?

    为什么同样的curl o file https www link com 命令输出不同的东西 例如 如果我运行命令curl o source txt https www youtube com playlist list PLIx6Fwnp

随机推荐

  • 如何在 AWS 实例上设置 WHM 和 cPanel

    WHM cPanel 是广泛用于 Linux 托管环境的基于 Web 的系统管理控制面板 要在AWS环境上使用WHM cPanel 我们将面临正常实例的问题 因此 我们更喜欢在aws中使用VPC 虚拟私有云 来安装WHM和cPanel服务器
  • 如何在 Debian 10 上安装 Google Cloud SDK

    谷歌云SDK提供了一组用于管理 Google Cloud Platform GCP 上托管的资源的工具 Cloud SDK 软件开发工具包 提供 gcloud gsutil 和 nd bq 命令 能够通过终端访问 Google Cloud
  • 如何在 Ubuntu 上安装和配置 Dovecot

    Dovecot 是一款开源 IMAP 和 POP3 电子邮件服务器 因其可靠性 可扩展性和易用性而被广泛使用 POP3 邮局协议 3 和 IMAP 互联网消息访问协议 都是用作消息访问代理的协议 这些协议用于从邮件服务器上的用户收件箱中获取
  • Linux /etc/shadow 文件

    基于 Linux 的系统以其强大的安全措施而闻名 可隔离敏感数据以确保最大限度地减少未经授权的访问 其中一项数据就是用户密码 与某些人的想法相反 这些密码不再以纯文本形式存储 甚至不再存储在 etc passwd 文件中 相反 它们以加密方
  • Ubuntu 18.10 发布、功能及更多

    简介 Ubuntu 开发团队现已开始开发 Ubuntu 18 10 的下一个版本 本文将为您提供有关 Ubuntu 18 10 的所有详细信息 Ubuntu 18 10 Cosmic Cuttlefish Release Date Feat
  • 配置 Sendmail 以通过远程 SMTP 服务器进行中继

    Sendmail 是基于 Unix 的系统上最古老且最流行的邮件传输代理 MTA 之一 它具有高度可定制性 这使其成为许多专业人士的首选 但这种灵活性也让它看起来令人畏惧 Sendmail 的一个关键功能是它能够通过远程 SMTP 服务器中
  • 如何通过 Docker 运行“npm start”

    npm 是 JavaScript 编程语言的软件包管理器 npm 使 JavaScript 开发人员可以轻松共享他们编写的代码 npm 还提供了一个命令行界面来管理项目中的依赖项 Docker 是一个容器化平台 允许开发人员将其应用程序和依
  • 如何在 CentOS 8 上安装 Ionic 框架

    Ionic 框架是开源 UI 工具包 用于使用 HTML CSS 和 JavaScript 等核心 Web 技术构建移动和桌面应用程序 Ionic 旨在在所有当前的移动设备和平台上完美地工作和显示 本文将帮助您在 CentOS 8 和 RH
  • 如何在 CentOS 和 RHEL 上设置 PHP eAccelerator

    PHP电子加速器用于通过优化和缓存编译状态来提高 php 脚本的性能 eAccelerator 将编译后的 PHP 脚本存储在共享内存中并直接从中执行代码 eAccelerator 通常可以减少服务器负载并将 PHP 代码的速度提高 1 1
  • 如何在 Ubuntu 18.04 上安装谷歌浏览器

    Google Chrome 是互联网用户最流行的网络浏览器 它适用于最流行的操作系统 如 Windows Linux 和 Android 设备 你也可以安装铬浏览器在你的 Ubuntu 系统上 开发团队使用 Chromium 源代码构建 C
  • 如何在 AWS 实例中获取默认 Windows 密码

    Amazon是领先的云托管提供商 您可以从 AWS 获得任何类型的服务器 从非常小到非常大 如果您已在 AWS EC2 托管帐户中创建了 Windows Server 实例 本文将帮助您了解如何在 AWS 实例中查找 Windows Ser
  • 5 个最佳 WordPress 托管提供商

    1 WP引擎 WP Engine 是适用于大容量网站的最佳且完全托管的 WordPress 托管 如果您的网站有数百万流量 您可以使用 WP Engine 托管 WP Engine 提供稳定 安全的托管 可以容纳您的所有客户 它的成本可能不
  • 如何在 Ubuntu 18.04 上安装 Atom 文本编辑器

    Atom是由GitHub开发的开源跨平台代码编辑器 它有一个内置的包管理器 嵌入Git控制 智能自动完成 语法突出显示和多个窗格 从本质上讲 Atom 是一个基于 Electron 构建的桌面应用程序 使用 HTML JavaScript
  • 如何在 Debian 9 上安装 R

    R 是一种快速发展的开源编程语言和环境 专门从事统计计算和图形表示 它由 R 统计计算基金会支持 主要供统计学家和数据挖掘人员用于开发统计软件和执行数据分析 本教程将引导您了解如何在 Debian 9 系统上安装 R 先决条件 在继续本教程
  • 如何在 Ubuntu 20.04 上安装和配置 Redis

    Redis 是一个开源内存键值数据存储 它可以用作数据库 缓存和消息代理 并支持各种数据结构 例如字符串 哈希 列表 集合等 Redis 通过 Redis Sentinel 提供高可用性 并通过 Redis Cluster 跨多个 Redi
  • Linux 中的 dmesg 命令

    Linux 内核是操作系统的核心 它控制对系统资源 如 CPU I O 设备 物理内存和文件系统 的访问 在引导过程中以及系统运行时 内核将各种消息写入内核环形缓冲区 这些消息包括有关系统操作的各种信息 内核环形缓冲区是物理内存的一部分 用
  • 如何在 CentOS 8 上设置 Nginx 服务器块

    服务器块是一种 Nginx 指令 它定义特定域的设置 允许您在一台服务器上运行多个网站 对于每个网站 您可以设置网站文档根目录 包含网站文件的目录 创建单独的安全策略 使用不同的 SSL 证书等等 本文介绍如何在 CentOS 8 上设置
  • 在 Debian 10 Linux 上使用 Let's Encrypt 保护 Nginx

    Let s Encrypt 是由互联网安全研究小组 ISRG 开发的免费 自动化 开放的证书颁发机构 提供免费的 SSL 证书 Let s Encrypt 颁发的证书受到所有主要浏览器的信任 并且自颁发之日起 90 天内有效 本教程展示了如
  • 如何在 Ubuntu 18.04 上设置 WireGuard VPN

    WireGuard 是一种采用最先进加密技术的现代 VPN 虚拟专用网络 技术 与其他类似解决方案 例如 IPsec 和 相比OpenVPN WireGuard 更快 更容易配置且性能更高 它是跨平台的 几乎可以在任何地方运行 包括 Lin
  • Linux 中的 pkill 命令

    本文涵盖了 Linux 的基础知识pkill命令 pkill是一个命令行实用程序 它根据给定的条件向正在运行的程序的进程发送信号 可以通过进程的完整名称或部分名称 运行进程的用户或其他属性来指定进程 The pkill命令是的一部分proc