相关文章推荐
深情的登山鞋  ·  qmap_抖抖音·  1 年前    · 

在使用Linux的过程中,有时候我们需要手动去终止进程,少的话还好,找出pid把它kill掉即可。但是,如果有一堆进程需要终止怎么办?今天我就遇到了这样的问题,启动了好多rtp包接收进程,结果停不下来。

ps -ef 命令查看,如下:

想了一下,应该可以用pipe(管道)来完成这项任务,经过测试,真的成功了。命令如下:

$ ps -ef | grep rtprecv | grep -v grep | awk '{print $2}' | xargs kill -9

解释一下:

  • ps -ef 用于获取当前系统所有进程,如上图所示。
  • grep rtprecv 过滤出与“rtprecv”字符相关的数据(以行为单位)。
  • grep -v grep 的作用是除去本次操作所造成的影响,-v 表示反向选择。
  • awk '{print $2}' 表示筛选出我们所关注的进程号,$2 表示每行第二个变量,在这个例子中就是进程号。所以如果你使用ps工具不一样,或者ps带的参数不一样,那需要关注的就可能不是$2,可能是$1
  • xargs kill -9 中的 xargs 命令表示用前面命令的输出结果(也就是一系列的进程号)作为 kill -9 命令的参数,-9 表示强制终止,不是必须的。

上面是用 kill 配合过滤操作来完成,实际上还有更简单的方法——使用 killall 命令。killall 通过进程名字终止所有进程,用法如下:killall <process_name>

在我们这个例子中,可以这么用:

# killall -9 rtprecv

当然,killall 也可以和 ps 或 pgrep 结合使用,以此来查看哪些程式正在运行。

【扩展知识】

与终止进程相关的命令有:

  • ps : 报告当前进程的快照
  • kill : 向一个进程发出信号
  • killall : 按名字消灭进程
  • pkill : 根据名字和其它属性查看或者发出进程信号
  • skill : 发送一个信号或者报告进程状态
  • xkill : 按照X资源消灭一个客户程序

终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。

另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。为什么数据库服务器的父进程不能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度的时候,数据库就有崩溃的危险。比如 mysql 服务器最好是按其正常的程序关闭,而不是用 pkill mysqldkillall mysqld 这样危险的动作;当然对于占用资源过多的数据库子进程,我们应该用 kill 来杀掉。

xkill 是在桌面用的杀死图形界面的程序。比如当 firefox 出现崩溃不能退出时,点鼠标就能杀死 firefox 。当xkill运行时出来和个人脑骨的图标,哪个图形程序崩溃一点就 OK 了。如果您想终止 xkill ,就按右键取消。

另外,说一下 grep 和 pgrep 的区别:

  • pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。在服务器的配置和管理中,这个工具常被应用。用法:pgrep 参数选项 程序名
  • grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix 的 grep 家族包括 grep、egrep 和 fgrep。

简单来说,一个是查询程序的运行状态,一个是搜索内容。

在使用Linux的过程中,有时候我们需要手动去终止进程,少的话还好,找出pid把它kill掉即可。但是,如果有一堆进程需要终止怎么办?今天我就遇到了这样的问题,启动了好多rtp包接收进程,结果停不下来。   用 ps -ef 命令查看,如下:   想了一下,应该可以用pipe(管道)来完成这项任务,经过测试,真的成功了。命令如下:   $ ps -ef | grep rtprecv | gre
Sysinternals 之前为Winternals公司提供的免费工具,Winternals原本是一间主力产品为系统复原与资料保护的公司,为了解决工程师平常在工作上遇到的各种问题,便开发出许多小工具。之后他们将这些工具集合起来称为Sysinternals,并放在网路供人免费下载,其中也包含部分工具的原始码,一直以来都颇受IT专家社群的好评。   微软在2006年7月收购了Winternals,更重要的是,微软藉由此一并购网罗了该公司的两位创办人Mark Russinovich及Bryce Cogswell,其中,Mark Russinovich曾因为利用自己开发的Rootkit Reveal
killall命令使用进程的名称来杀死进程使用此指令可以杀死一组同名进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。 我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。 语法格式:killall [参数] 常用参数: 对长名称进行精确匹配 打印所有已知信号列表
taskkill /f /im 文件名 (结束名称为“文件名”的进程)taskkill /f /im a* (结束以a开头的所有进程)taskkill /f /im abc* (结束以abc开头的所有进程) taskkill /f /im *.bat (结束所有扩展名为bat的进程,也就是结束当前正在运行的所有批处理程序) taskkill /f /im a*.cmd (结束以a开头的所有扩展名为...
一、killall使用方法(结束大多数进程) 参考:http://www.cnblogs.com/peida/archive/2012/12/21/2827366.html Linux系统中的killall命令用于杀死指定名字的进程killprocessesbyname)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配...
1 kill:根据进程号(PID)杀死进程linux上,一般常用的杀死进程命令kill,但是也有缺陷,下面说 1、查看指定名称的进程,如下我查看运行python程序的进程 python aux|grep python 2、根据进程号(PID)杀死进程:第二列显示的就是进程kill PID 3、强制杀死进程,有些进程可能杀不死,就加个-9参数,强制让它死掉! kill -9 PID 5、杀死多个进程,在后面跟多个进程的PID号即可 kill -9 PID1 PID2 PID3 ...
零散进程 杀死所有不应运行的用户进程。 这有助于信息亭和共享使用Mac OS 10.9+的计算机。 存在一个错误,使注销的用户可以运行多个进程。 主要保留4个进程,但发现有更多进程在运行。 (启动,cfprefsd,distnoted,mdworker)。 我将此脚本与登录挂钩和启动守护程序结合使用。 登录挂钩在登录时立即运行脚本,确保所有先前的用户进程都消失了。 启动守护程序每10分钟运行一次。 以root身份运行,以便它将执行我们需要其他用户进程使用kill -9。
DataX-Web DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。 任务"执行器"支持集群部署,支持执行器多节点路由策略选择,支持超时控制、失败重试、失败告警、任务依赖,执行器CPU.内存.负载的监控等等。后续还将提供更多的数据源支持、数据转换UDF、表结构同步、数据同步血缘等更为复杂的业务场景。 Architecture diagram: System Requirements Language:
可以使用以下命令批量kill进程: 1. 使用ps命令查找进程ID: ps -ef | grep "进程名" | grep -v grep | awk '{print $2}' 2. 将查找到的进程ID作为参数传递给kill命令kill -9 进程ID1 进程ID2 ... 进程IDn 例如,要批量kill名为"test"的进程,可以使用以下命令: ps -ef | grep "test" | grep -v grep | awk '{print $2}' | xargs kill -9