通常,可以通过运行其shutdown.sh脚本(或批处理文件)来关闭apachetomcat。在某些情况下,例如,当Tomcat的web容器托管一个web应用程序时,运行shutdown.sh会优雅地关闭Tomcat的一些部分(正如我看到的那样,更多的可用内存返回到系统中),但是Tomcat进程一直在运行。在
我试图编写一个简单的Python脚本:调用shutdown.sh
运行ps -aef | grep tomcat查找引用Tomcat的任何进程
如果适用,使用kill -9 终止进程
以下是到目前为止我得到的结果(作为一个原型,我对Python是全新的,顺便说一句):#!/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。提前谢谢!在