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