运行维护:杀光光~浅记killall命令的使用

pyppeteer 使用多有报错,产生了很多废弃进程堆积,需要批量kill。


运行环境 Runtime environment

1
操作系统: Red Hat 4.8.5-16

背景

由于目标网站是r数反爬,考虑到数据量不算大,就直接使用动态 scrapty+gerapy-pyppeteer 采集。

但是,爬取依然相当的不稳定,卡死的现象还是比较频繁的,导致了错误的进程堆积在linux系统里。

ps -aux|grep chrome

查询一下,头皮发麻。

kill all 介绍

Linux killall 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程。

kill 命令杀死指定进程 PID,需要配合 ps 使用,而 killall 直接对进程对名字进行操作,更加方便。

kill all 参数明细

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
参数说明:
name : 进程名

选项包含如下几个参数:
-e | --exact : 进程需要和名字完全相符
-I | --ignore-case :忽略大小写
-g | --process-group :结束进程组
-i | --interactive :结束之前询问
-l | --list :列出所有的信号名称
-q | --quite :进程没有结束时,不输出任何信息
-r | --regexp :将进程名模式解释为扩展的正则表达式。
-s | --signal :发送指定信号
-u | --user :结束指定用户的进程
-v | --verbose :显示详细执行过程
-w | --wait :等待所有的进程都结束
-V |--version :显示版本信息
--help :显示帮助信息

示例

killall -9 python //结束所有的 python 进程

实例

结合背景截图中的场景

杀死所有该名称的进程

killall -9 /home/users/jump/.local/share/pyppeteer/local-chromium/588429/chrome-linux/chrome

总结

killall 命令可以根据进程名称批量结束掉进程,但是在到进程名称携带空格的情况,我也不知道要怎么杀了。有缘碰到,就看看。