0

0

Linux如何使用pkill结束进程

P粉602998670

P粉602998670

发布时间:2025-09-03 08:37:01

|

831人浏览过

|

来源于php中文网

原创

pkill是Linux中通过进程名或属性终止进程的高效工具,支持按用户、终端等条件精确匹配,相比kill和killall更具灵活性,尤其适合批量管理或复杂场景下的进程控制。

linux如何使用pkill结束进程

pkill
是 Linux 下一个非常实用的命令,它能让你通过进程名或其他属性(比如用户、终端)来轻松地结束进程。比起
kill
需要先查找 PID,再执行命令,
pkill
简直是效率的代名词,尤其当你面对一堆同名进程,或者只想干掉某个用户的所有进程时,它的便捷性就体现出来了。

解决方案

使用

pkill
结束进程的核心思想是“按条件杀死”。最基础的用法就是直接跟上你想杀死的进程名。

例如,如果你想结束所有名为

nginx
的进程:

pkill nginx

这会向所有匹配“nginx”的进程发送

SIGTERM
信号(默认的终止信号)。如果进程不响应,你可能需要更强制的
SIGKILL
信号:

pkill -9 nginx
# 或者更易读的写法
pkill -KILL nginx

有时候,进程名可能不完整,或者你只想匹配命令行中包含某个关键词的进程,这时候

-f
选项就派上用场了。它会匹配整个命令行字符串,而不仅仅是进程名:

pkill -f "python my_script.py"

这个

-f
选项,我个人觉得是
pkill
最强大的功能之一,因为它能让你更精确地定位那些启动参数复杂的进程。

pkill与kill、killall有何区别,何时选择pkill更明智?

这真的是个老生常谈的问题,但每次讨论都觉得很有必要。在我看来,这三个命令各有侧重,就像工具箱里的不同扳手,没有哪个是万能的。

kill
是最基础的,它需要你明确知道进程的 PID(Process ID)。你通常得先用
ps aux | grep <进程名>
或者
pgrep <进程名>
找出 PID,然后才能用
kill 
。它的优点是精准,不会误伤,但缺点就是操作步骤多。我偶尔会用它来处理那些特别顽固,或者我只想杀掉某个特定实例的进程。

killall
则简单粗暴,它会杀死所有指定名字的进程。比如
killall firefox
会把所有
firefox
进程都干掉。听起来很方便对吧?但它的一个潜在问题是,它要求进程名必须完全匹配。如果你的程序启动时,进程名后面跟了一堆参数,或者根本不是你预期的那个名字,
killall
可能就无能为力了。我记得有一次,我想杀掉一个 Java 应用,结果
killall java
差点把系统里所有 Java 相关的服务都停了,吓得我一身冷汗。

pkill
,我觉得它是介于两者之间的一个“智能杀手”。它像
killall
一样可以通过名字来杀进程,但它提供了更灵活的匹配方式(比如部分匹配,或者
-f
匹配整个命令行),而且还能结合其他条件,比如用户 (
-u
)、终端 (
-t
)。这种灵活性,让
pkill
在很多场景下成为首选。比如,我想干掉所有由某个用户启动的
php-fpm
进程,但又不想影响其他用户,
pkill -u www-data php-fpm
就能完美解决。所以,当你需要更精细的控制,或者不确定精确进程名时,
pkill
的优势就凸显出来了。

如何安全地使用pkill,避免误杀重要进程?

安全永远是第一位的,尤其是在服务器环境。我见过太多因为误杀进程导致服务中断的案例了,所以在使用

pkill
之前,多想一步总没错。

最直接的建议是:先用

pgrep
确认你要杀的进程。
pgrep
的用法和
pkill
几乎一模一样,但它只是列出匹配的进程 PID,而不会执行杀死操作。

# 确认哪些进程会被 pkill nginx 杀死
pgrep nginx
# 确认哪些进程会被 pkill -f "python my_script.py" 杀死
pgrep -f "python my_script.py"

通过

pgrep
看到的结果,你可以仔细检查是不是你真正想杀的那些。如果结果符合预期,再把
pgrep
换成
pkill
。这个小习惯,能帮你省去很多麻烦。

Musico
Musico

Musico 是一个AI驱动的软件引擎,可以生成音乐。 它可以对手势、动作、代码或其他声音做出反应。

下载

其次,理解信号。默认

pkill
发送的是
SIGTERM
(15),这是一个“温柔”的请求,告诉进程“请优雅地退出”。进程有机会保存数据、释放资源。如果进程不听话,才考虑
SIGKILL
(9),这是一个“强制”信号,进程会立即终止,没有任何清理操作,这可能导致数据丢失或文件损坏。我个人习惯是先
SIGTERM
,等几秒,如果进程还在,再用
SIGKILL

还有,注意权限。如果你是

root
用户,那几乎可以杀死任何进程。但如果你是普通用户,就只能杀死自己拥有的进程。这也是一种隐性的保护机制,防止普通用户误操作影响系统。

最后,如果你在测试脚本或者不确定效果时,可以考虑使用

-i
选项,它会在杀死每个进程前进行交互式确认。

pkill -i nginx

虽然在自动化脚本中不常用,但在手动操作或调试时,它能给你一个反悔的机会。

pkill在复杂场景下的高级应用,比如指定用户或终端?

pkill
的魅力,很大程度上在于它能够结合各种条件进行组合,实现非常精细的进程控制。这在管理多用户系统或者有多个会话的服务器上尤其有用。

比如,你想结束某个特定用户

john
启动的所有
php-cgi
进程。你不需要知道
john
启动了多少个,也不需要知道它们的 PID,一个命令就搞定:

pkill -u john php-cgi

这个

-u
选项,简直是系统管理员的福音。我记得有一次,一个用户抱怨他的程序跑得飞快,占满了 CPU,但又不知道具体是哪个进程。我直接用
pkill -u problematic_user
把他所有进程都干掉了(当然,这之前会先沟通确认),问题立刻解决。

再比如,你可能想结束在某个特定终端(TTY)上运行的所有进程。这在处理一些“僵尸”终端会话或者清理远程连接时很有用。假设你想结束在

pts/0
这个伪终端上的所有进程:

pkill -t pts/0

这里需要注意的是,

pts/0
是一个伪终端的例子,实际名称可以通过
w
who
命令查看。

更进一步,你可以将这些选项组合起来。比如,你想杀死用户

devuser
pts/1
终端上运行的所有
node
进程:

pkill -u devuser -t pts/1 node

这种组合能力,让

pkill
变得非常强大和灵活。它不仅仅是一个简单的“杀进程”工具,更像是一个能够精确打击的“进程管理狙击手”。当然,能力越大,责任越大,使用时务必再三确认你的目标,避免不必要的损失。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

233

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

508

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

501

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

235

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

365

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3561

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

41

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

58

2026.01.13

全国统一发票查询平台入口合集
全国统一发票查询平台入口合集

本专题整合了全国统一发票查询入口地址合集,阅读专题下面的文章了解更多详细入口。

12

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.4万人学习

Git 教程
Git 教程

共21课时 | 3.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号