Linux
在 bash 腳本中殺死 PID
我在我的 bash 腳本中使用以下語法來終止腳本的 PID - AmbariAgent.py
kill $( ps -ef | grep AmbariAgent.py | grep -v grep | awk '{print $2 }' )
從
ps -ef
ps -ef | grep AmbariAgent.py | grep -v grep root 63769 1 0 12:39 pts/0 00:00:00 /usr/bin/python /usr/lib/python2.6/site-packages/ambari_agent/AmbariAgent.py start
我只是問是否有更優雅的方法而不是 cli -
kill $( ps -ef | grep AmbariAgent.py | grep -v grep | awk '{print $2 }' )
?
我們試圖
pkill AmbariAgent
但PID仍然上升
# ps -ef | grep AmbariAgent root 3645 1 0 12:43 pts/0 00:00:00 /usr/bin/python /usr/lib/python2.6/site-packages/ambari_agent/AmbariAgent.py start root 31018 61002 0 13:02 pts/0 00:00:00 grep --color=auto AmbariAgent
如果您嘗試終止 AmbariAgent 程序,則可以使用更短且更有效的命令根據名稱終止它:
pkill -f AmbariAgent
或者無論名稱實際上是什麼:
pkill -f <name>
添加了
-f
開關,使其與整行匹配,而不僅僅是程序名稱。
您可以使用以下一行 awk 命令來終止該程序
測試和工作正常
ps -eaf | awk '/AmbariAgent.py/ && $0 !~ /awk/{print "kill -9" " " $2}'|sh