使用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}'`
相關文章
相關標籤/搜索