shutdown.sh
通常、スクリプト(またはバッチファイル)を実行してApacheTomcatをシャットダウンします。TomcatのWebコンテナがマルチスレッドでいくつかのクレイジーなことを行うWebアプリをホストしている場合など、場合によっては、実行すると、Tomcatの一部shutdown.sh
が正常にシャットダウンされます(システムに返される利用可能なメモリが増えることがわかります)が、Tomcatプロセスは実行を続けます。
私は次のような単純なPythonスクリプトを書き込もうとしています。
- 呼び出し
shutdown.sh
ps -aef | grep tomcat
Tomcatが参照されているプロセスを検索するために実行されます- 該当する場合は、
kill -9 <PID>
これが私がこれまでに得たものです(プロトタイプとして-私はPython BTWにまったく慣れていません):
#!/usr/bin/python
# Imports
import sys
import subprocess
# Load from imported module.
if __init__ == "__main__":
main()
# Main entry point.
def main():
# Shutdown Tomcat
shutdownCmd = "sh ${TOMCAT_HOME}/bin/shutdown.sh"
subprocess.call([shutdownCmd], shell=true)
# Check for PID
grepCmd = "ps -aef | grep tomcat"
grepResults = subprocess.call([grepCmd], shell=true)
if(grepResult.length > 1):
# Get PID and kill it.
pid = ???
killPidCmd = "kill -9 $pid"
subprocess.call([killPidCmd], shell=true)
# Exit.
sys.exit()
私は真ん中の部分で苦労しています-grep
結果を取得し、それらのサイズが1より大きいかどうかを確認し(grep
常にそれ自体への参照を返すため、少なくとも1つの結果が常に返されます、メチンク)、返された結果を解析しますPIDとそれをに渡しkillPidCmd
ます。前もって感謝します!