在 bash 脚本中杀死 PID

在 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

答案1

如果您尝试终止 AmbariAgent 进程,那么您可以使用更短且更有效的命令根据名称来终止它:

pkill -f AmbariAgent

或者无论它的实际名称是什么:

pkill -f <name>

添加了-f开关,以便它与整行匹配,而不仅仅是进程名称。

答案2

您可以使用下面一行 awk 命令来终止该进程

测试并运行良好

ps -eaf | awk '/AmbariAgent.py/ && $0 !~ /awk/{print "kill -9" " " $2}'|sh

相关内容