linux如何杀进程

常规篇:

首先,用ps查看进程,方法如下:

复制代码 代码如下:

$ ps -ef

$ ps -ef

……
smx       1822     1  0 11:38 ?        00:00:49 gnome-terminal
smx       1823  1822  0 11:38 ?        00:00:00 gnome-pty-helper
smx       1824  1822  0 11:38 pts/0    00:00:02 bash
smx       1827     1  4 11:38 ?        00:26:28 /usr/lib/firefox-3.6.18/firefox-bin
smx       1857  1822  0 11:38 pts/1    00:00:00 bash
smx       1880  1619  0 11:38 ?        00:00:00 update-notifier
……
smx      11946  1824  0 21:41 pts/0    00:00:00 ps -ef

或者:

复制代码 代码如下:

$ ps -aux

……

smx       1822  0.1  0.8  58484 18152 ?        sl   11:38   0:49 gnome-terminal
smx       1823  0.0  0.0   1988   712 ?        s    11:38   0:00 gnome-pty-helper
smx       1824  0.0  0.1   6820  3776 pts/0    ss   11:38   0:02 bash
smx       1827  4.3  5.8 398196 119568 ?       sl   11:38  26:13 /usr/lib/firefox-3.6.18/firefox-bin
smx       1857  0.0  0.1   6688  3644 pts/1    ss   11:38   0:00 bash
smx       1880  0.0  0.6  41536 12620 ?        s    11:38   0:00 update-notifier
……
smx      11953  0.0  0.0   2716  1064 pts/0    r+   21:42   0:00 ps -aux

此时如果我想杀了火狐的进程就在终端输入:

复制代码 代码如下:

$ kill -s 9 1827

其中-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。各个终止信号及其作用见附录。

1827则是上面ps查到的火狐的pid。

简单吧,但有个问题,进程少了则无所谓,进程多了,就会觉得痛苦了,无论是ps -ef 还是ps -aux,每次都要在一大串进程信息里面查找到要杀的进程,看的眼都花了。

进阶篇:

改进1:

把ps的查询结果通过管道给grep查找包含特定字符串的进程。管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。

复制代码 代码如下:

$ ps -ef | grep firefox
smx       1827     1  4 11:38 ?        00:27:33 /usr/lib/firefox-3.6.18/firefox-bin
smx      12029  1824  0 21:54 pts/0    00:00:00 grep –color=auto firefox

这次就清爽了。然后就是

复制代码 代码如下:

$kill -s 9 1827

改进2——使用pgrep:

一看到pgrep首先会想到什么?没错,grep!pgrep的p表明了这个命令是专门用于进程查询的grep。

复制代码 代码如下:

$ pgrep firefox
1827

看到了什么?没错火狐的pid,接下来又要打字了:

$kill -s 9 1827

改进3——使用pidof:

看到pidof想到啥?没错pid of xx,字面翻译过来就是 xx的pid。

复制代码 代码如下:

$ pidof firefox-bin
1827

和pgrep相比稍显不足的是,pidof必须给出进程的全名。然后就是老生常谈:

复制代码 代码如下:

$kill -s 9 1827

豆包AI编程 豆包AI编程

豆包推出的AI编程助手

豆包AI编程 483 查看详情 豆包AI编程

无论使用ps 然后慢慢查找进程pid 还是用grep查找包含相应字符串的进程,亦或者用pgrep直接查找包含相应字符串的进程pid,然后手动输入给kill杀掉,都稍显麻烦。有没有更方便的方法?有!

改进4:

复制代码 代码如下:

$ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -s 9

说明:

“grep firefox”的输出结果是,所有含有关键字“firefox”的进程。

“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号pid。

“xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(pid)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。

难道你不想抱怨点什么?没错太长了

改进5:

知道pgrep和pidof两个命令,干嘛还要打那么长一串!

复制代码 代码如下:

$ pgrep firefox | xargs kill -s 9

改进6:

复制代码 代码如下:

$ ps -ef | grep firefox | awk ‘{print $2}’ | xargs kill -9
kill: no such process

有一个比较郁闷的地方,进程已经正确找到并且终止了,但是执行完却提示找不到进程。

其中awk ‘{print $2}’ 的作用就是打印(print)出第二列的内容。根据常规篇,可以知道ps输出的第二列正好是pid。就把进程相应的pid通过xargs传递给kill作参数,杀掉对应的进程。

改进7:

难道每次都要调用xargs把pid传递给kill?答案是否定的:

复制代码 代码如下:

$kill -s 9 `ps -aux | grep firefox | awk ‘{print $2}’

改进8:

没错,命令依然有点长,换成pgrep。

复制代码 代码如下:

$kill -s 9 `pgrep firefox`

改进9——pkill:

看到pkill想到了什么?没错pgrep和kill!pkill=pgrep+kill。

复制代码 代码如下:

$pkill -9 firefox

说明:”-9″ 即发送的信号是9,pkill与kill在这点的差别是:pkill无须 “s”,终止信号等级直接跟在 “-“ 后面。之前我一直以为是 “-s 9″,结果每次运行都无法终止进程。

改进10——killall:

killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。

复制代码 代码如下:

$killall -9 firefox

以上就是linux如何杀进程的详细内容,更多请关注创想鸟其它相关文章!

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

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
composer为什么推荐使用HTTPS源
上一篇 2026年10月6日 08:55:16
Java中后缀表达式求值:核心算法与字符数字转换陷阱解析
下一篇 2025年11月10日 05:51:32

相关推荐

  • linux有没有剪辑软件

    linux有没有剪辑软件linux有没有剪辑软件linux有没有剪辑软件linux有没有剪辑软件

    linux有剪辑软件,例如Kdenlive、OpenShot、Flowblade Movie Editor、Lightworks、Blender等。Kdenlive是一款自由而开源的视频编辑软件,lowblade Movie Editor是一个用于Linux的多轨非线性视频编辑器,Lightwork…

    2026年10月6日 • 用户投稿
    100
  • composer怎么取消镜像设置_Composer取消镜像源设置教程

    composer怎么取消镜像设置_Composer取消镜像源设置教程composer怎么取消镜像设置_Composer取消镜像源设置教程composer怎么取消镜像设置_Composer取消镜像源设置教程composer怎么取消镜像设置_Composer取消镜像源设置教程

    取消Composer镜像需先查看当前配置:composer config -g –list,确认repositories.packagist设置;2. 执行composer config -g –unset repos.packagist删除镜像或手动编辑config.jso…

    2026年10月6日 • 用户投稿
    100
  • linux交叉编译环境是什么意思

    linux交叉编译环境是什么意思linux交叉编译环境是什么意思linux交叉编译环境是什么意思linux交叉编译环境是什么意思

    Linux交叉编译环境指的是在一个操作系统上为另一个不同的操作系统或体系结构进行编译的环境。在交叉编译环境中,开发人员可以使用一个主机系统上的编译器和工具链来生成目标系统上可执行的程序或库。 本教程操作系统:Linux5.18.14系统、Dell G3电脑。 linux交叉编译环境的含义 Linux…

    2026年10月6日 • 用户投稿
    100
  • linux中如何使用Vim删除偶数行或奇数行

    删除偶数行的方法如下: :g/^/+1 d 上面用到了:gbobal命令,gbobal命令格式如下: :[range]global/{pattern}/{command} global命令实际上是分成两步执行:首先扫描[range]指定范围内的所有行,给匹配{pattern}的行打上标记;然后依次对…

    2026年10月6日
    400
  • mount 命令(三) —— Linux 挂载 Windows 共享目录

    mount 命令(三) —— Linux 挂载 Windows 共享目录mount 命令(三) —— Linux 挂载 Windows 共享目录mount 命令(三) —— Linux 挂载 Windows 共享目录mount 命令(三) —— Linux 挂载 Windows 共享目录

    要在windows系统上设置smb服务并从linux挂载windows共享目录,请按照以下步骤操作: 首先,在Windows系统上启用SMB服务: 接着,设置共享文件夹: 然后,设置共享是否需要密码: 如果遇到挂载错误,可以尝试取消密码需求(改为无密码保护的共享),看看是否可以挂载成功。改变本地策略…

    2026年10月6日 • 用户投稿
    100
  • 谷歌为5款联发科处理器的Chromebook新增Linux应用支持

    谷歌为5款联发科处理器的Chromebook新增Linux应用支持谷歌为5款联发科处理器的Chromebook新增Linux应用支持谷歌为5款联发科处理器的Chromebook新增Linux应用支持谷歌为5款联发科处理器的Chromebook新增Linux应用支持

    为了增强谷歌chrome os的竞争优势,谷歌在引入android应用支持之后,再次为其添加了对linux应用的支持。 然而,并非所有Chromebook都能使用Linux应用功能。某些搭载ARM处理器的产品,尤其是采用联发科ARM处理器的设备,目前尚无法支持Linux应用。 不过,近期有开发者注意…

    2026年10月6日 • 用户投稿
    200
  • Linux screen命令如何使用

    Linux screen命令如何使用Linux screen命令如何使用Linux screen命令如何使用Linux screen命令如何使用

    一、screen命令简介 screen是一种全屏窗口管理器,它可以让多个进程(通常为交互式shell)在物理终端之间进行多路传输。每个虚拟终端都具备dec vt100终端和ansi x3的控制功能。iso 6429 (64) and iso 2022 standards (e.g. insertio…

    2026年10月6日 • 用户投稿
    100
  • linux中文件删除不了如何解决

    rm 是删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息。此命令的基本格式为: [root@localhost ~]# rm[选项] 文件或目录 注意,rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就…

    2026年10月6日
    100
  • 如何修改linux系统终端字体

    1.通过console-tools设置控制台字体 1.1.选用并测试合适的字体和字库文件: # ls /usr/share/consolefonts/ 1.2.测试选用喜爱的字库文件: # consolechars -f /usr/share/consolefonts/lat9w-16.psf.gz…

    2026年10月6日
    100
  • 如何使用Java进行文件压缩 Java实现ZIP压缩文件操作

    如何使用Java进行文件压缩 Java实现ZIP压缩文件操作如何使用Java进行文件压缩 Java实现ZIP压缩文件操作如何使用Java进行文件压缩 Java实现ZIP压缩文件操作如何使用Java进行文件压缩 Java实现ZIP压缩文件操作

    java使用java.util.zip包实现文件压缩与解压,核心类为zipoutputstream和zipinputstream。1.压缩文件:通过创建zipoutputstream,遍历文件并为每个文件创建zipentry,将其内容写入流中;2.压缩文件夹:递归遍历文件夹内容,将每个文件及子文件夹…

    2026年10月6日 • 用户投稿
    200
  • .NET Core 3.0 中的新变化

    .NET Core 3.0 中的新变化.NET Core 3.0 中的新变化.NET Core 3.0 中的新变化.NET Core 3.0 中的新变化

    .net core 3.0 标志着 .net core 平台的一个重要新版本。本文回顾了 .net core 的发展历程,并展示了它如何从最初仅支持 web 和数据工作负载的版本 1,发展到能够支持 web、桌面、机器学习、容器、物联网等的版本 3.0。 .NET Core 1.NET Core 的…

    2026年10月6日 • 用户投稿
    100
  • linux云服务器如何通过top看CPU性能指标

    linux云服务器如何通过top看CPU性能指标linux云服务器如何通过top看CPU性能指标linux云服务器如何通过top看CPU性能指标linux云服务器如何通过top看CPU性能指标

    服务器变慢负载高时,需要先查看cpu负载是否过高,如果cpu负载高再看查看具体是什么进程占用cpu资源。一、cpu负载:通过top命令查看:           主要看“load average”可理解为分别表示前 1、5、15分钟的平均负荷。通常1核的cpu不应超过4,如是4核cpu则不应超16(…

    2026年10月6日 • 用户投稿
    100
  • LINUX怎么彻底卸载一个软件_LINUX彻底卸载软件及其依赖的方法

    如果您在使用LINUX系统时需要移除某个已安装的软件,并希望同时清除其相关依赖项,避免残留文件占用空间或引发冲突,可以按照以下方式操作。 本文运行环境:Dell XPS 13,Ubuntu 24.04 一、使用包管理器卸载主程序及依赖 大多数LINUX发行版提供高级包管理工具,能够追踪软件安装时引入…

    2026年10月6日
    100
  • 如何构建支持链路聚合的网络环境?

    链路聚合通过捆绑多条物理链路提升带宽和冗余,需交换机与服务器/NAS协同配置。首先确保硬件支持LACP(IEEE 802.3ad),交换机端创建LAG组并添加端口,选择LACP主动或被动模式;Linux服务器加载bonding模块,配置mode=4(802.3ad)及miimon监测,通过网络配置文…

    2026年10月6日
    200
  • linux下如何安装最新版的nodejs

    1. 下载对应系统架构的nodejs版本,可以直接wget下载,也可以下载再sftp传到linux上 2.解压 tar 3.设置环境变量PATH: vim ~/.bashrc export PATH=/pkg/node-v10.8.0-linux-x64/bin:$PATH# 关闭source 4.…

    用户投稿 2026年10月6日
    000
  • composer如何清理缓存解决依赖版本混乱的问题

    composer如何清理缓存解决依赖版本混乱的问题composer如何清理缓存解决依赖版本混乱的问题composer如何清理缓存解决依赖版本混乱的问题composer如何清理缓存解决依赖版本混乱的问题

    清理 Composer 缓存可解决依赖版本混乱问题。1. 执行 composer clear-cache 清除下载包和元数据;2. 若无效,手动删除 ~/.composer/cache 或 Windows 对应缓存目录;3. 运行 composer update 重新解析依赖,或指定包更新;4. 建…

    2026年10月6日 • 用户投稿
    000
  • 可不可以用u盘装linux

    举例来说,Veket Linux是一种可安装在U盘上的便携式Linux操作系统。用U盘安装LINUX的方法:1、手头必须有一个Linux或FreeBSD系统,能够使用zcat命令的系统都可以;2、到对应的Linux发布版本下载一个启动的img写到U盘上;3、把U盘插到已有Linux系统上,执行“zc…

    2026年10月6日
    600
  • composer global和项目内的composer有什么区别

    composer global和项目内的composer有什么区别composer global和项目内的composer有什么区别composer global和项目内的composer有什么区别composer global和项目内的composer有什么区别

    全局 Composer 用于安装跨项目命令行工具,作用范围广但缺乏隔离;项目内 Composer 确保依赖独立,适用于项目专用库。前者如 Laravel Installer,后者如 Guzzle;全局包存于系统目录,需配置 PATH 才能调用。 使用 composer global 和在项目内使用 …

    2026年10月6日 • 用户投稿
    100
  • Java怎么在LINUX上加载OpenCV so库

      这个范例不一定能跑起来。原因就是依赖库加载的问题。如果libopencv_java.so: 包含其他所有的so功能,上述博文就是对的。 如果不包含,需要一定的加载技巧。 度加剪辑 度加剪辑(原度咔剪辑),百度旗下AI创作工具 63 查看详情   代码范例如下: package taishan; …

    2026年10月6日
    100
  • Linux多线程编程实例代码分析

    下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。 代码: /*thread_example.c : c multiple thread programming in linux *author : falcon…

    2026年10月6日
    100

发表回复

登录后才能评论
关注微信