![Bash 스크립트에서 PID 종료](https://linux55.com/image/169746/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20PID%20%EC%A2%85%EB%A3%8C.png)
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