在 58 之前的版本中,killall chromium-browse[r]
只需关闭所有标签页,浏览器的 chrome 仍保持完整。新版本的浏览器如何复制此行为?
我所能做的最好的是以下操作,它在执行操作时也会删除扩展:
pgrep -f 'chromium-browser --type=renderer' | while read pid; do kill $pid; done
编辑上下文:我的 cgroup 限制了 Chromium 可以使用的内存量。当超出该量时,Chromium 会挂起从磁盘交换内存和将内存交换到磁盘。在此状态下,Chromium 不会响应用户输入,因此无法使用基于浏览器的选项卡控制。
为清晰起见进行编辑:关闭标签并不意味着关闭它。我想要的是标签本身保留,但渲染过程终止。这通常是通过显示“出现问题”消息而不是正常的标签内容来表示的。
答案1
好的,在您编辑之后,我尝试了您给出的命令。您说它也会破坏扩展,因此您可以排除它们,grep -v "extension"
但随后您将整个过程命令作为输入。
无论如何。首先选择进程名称
pgrep -f -a 'chrome'
我使用的是 chrome,你可以改用chromium-browser
。-a
这里的标志很重要。
然后做
| grep 'type=renderer'
获取所有渲染器。然后执行
| grep -v "extension"
要排除扩展,我们需要做
| egrep -o '^[0-9]{0,}'
仅获取进程号(因为我们必须使用-a
在字符串中提供额外数据的标志)。
将其输入到你的 for 循环中
| while read pid; do kill $pid; done
并且它应该杀死没有扩展的渲染器
最后,以下是整个内容:
pgrep -f -a 'chromium-browser' | grep 'type=renderer' | grep -v "extension" | egrep -o '^[0-9]{0,}' | while read pid; do kill $pid; done
我希望我没有犯错误
答案2
Ctrl++将杀死当前选定的 chrome 窗口中的所有标签,而不会影响浏览器本身Shift。w