我在 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
答案1
如果您尝试终止 AmbariAgent 进程,那么您可以使用更短且更有效的命令根据名称来终止它:
pkill -f AmbariAgent
或者无论它的实际名称是什么:
pkill -f <name>
添加了-f
开关,以便它与整行匹配,而不仅仅是进程名称。
答案2
您可以使用下面一行 awk 命令来终止该进程
测试并运行良好
ps -eaf | awk '/AmbariAgent.py/ && $0 !~ /awk/{print "kill -9" " " $2}'|sh