2014-10-21 60 views
-1

你好,我正在寻找一种方法来从bash终端杀死浏览器的选项卡(没有预先定义的进程),通过名称不是pid,我想从最新的命令删除它们最老的。我试图如何杀死bash从最新到最旧的进程

pkill的-f -n -9

和浏览器的名称,但它不会杀死他们。我无法使用killall,因为我想在每个过程的每次杀戮之间短暂的睡眠。有什么建议么?

+0

你怎么能知道哪些pid是最古老的 – exussum 2014-10-21 21:41:59

+0

-n开关自动地选择最新的:-) – thom 2014-10-21 21:43:31

回答

1
while [[ $(pgrep -c "chromium") != 0 ]] 
do 
    pkill -n -9 "chromium" 
    sleep 1 
done 

只要铬流程正在运行,就会循环。它在每次击杀之间等待1秒。另外bash命令是空间敏感的;-)。始终保持括号和比较运算符的空格。

+0

在此之后 >而[[$(p纤ep -c “$铬”)= 0]!]。 做 pkill的-9 -n “$铬” 睡眠1 做 报告说,3个错误条件二进制运算符预期,语法错误附近!= 0' ,而[[$(p纤ep -c “$铬”)! = 0]];' – ihavename 2014-10-21 22:02:57

+0

你忘了'!='后面的空格,也不要在文字过程名上使用'$'。 '$'仅用于变量:-)我将编辑我的答案以更适合您的用例。 – thom 2014-10-21 22:25:15

+0

谢谢你的作品!但仍然到最后一个标签说pkill:杀死PID 20822失败:操作不允许,任何想法?即使非常感谢你:D – ihavename 2014-10-21 22:34:35