使用bash和regex在一行中查找并终止进程

我常常须要在编程期间杀死进程。 python

我如今这样作的方式是: 正则表达式

[~]$ ps aux | grep 'python csp_build.py'
user    5124  1.0  0.3 214588 13852 pts/4    Sl+  11:19   0:00 python csp_build.py
user    5373  0.0  0.0   8096   960 pts/6    S+   11:20   0:00 grep python csp_build.py
[~]$ kill 5124

如何自动提取进程ID并在同一行中终止它? chrome

像这样: 编程

[~]$ ps aux | grep 'python csp_build.py' | kill <regex that returns the pid>

#1楼

您可能只使用pkill '^python*'进行正则表达式进程查杀。 测试

若是你想在杀死以前看到你要杀死或找到的东西,只需使用pgrep -l '^python*' ,其中-l输出也是进程的名称。 若是您不想使用pkill ,请使用: ui

pgrep '^python*' | xargs kill spa


#2楼

个人任务是杀死与特定目录中的regexp相匹配的全部内容(在selenium测试以后并不是全部内容都中止)。 这对我有用: firefox

for i in `ps aux | egrep "firefox|chrome|selenium|opera"|grep "/home/dir1/dir2"|awk '{print $2}'|uniq`; do kill $i; done

#3楼

killall -r regexp

-r, --regexp

将进程名称模式解释为扩展正则表达式。 code


#4楼

从常见的PPID开始杀死咱们本身的进程很是频繁,与–P标志关联的pkill对我来讲是一个赢家。 使用@ ghostdog74示例: regexp

# sleep 30 &                                                                                                      
[1] 68849
# sleep 30 &
[2] 68879
# sleep 30 &
[3] 68897
# sleep 30 &
[4] 68900
# pkill -P $$                                                                                                         
[1]   Terminated              sleep 30
[2]   Terminated              sleep 30
[3]-  Terminated              sleep 30
[4]+  Terminated              sleep 30

#5楼

ps不须要用户开关。

kill `ps ax | grep 'python csp_build.py' | awk '{print $1}'`
相关文章
相关标签/搜索