Skip to content

Commit 4455d6c

Browse files
committed
tomcat deamon by python
1 parent c268f2e commit 4455d6c

File tree

2 files changed

+94
-0
lines changed

2 files changed

+94
-0
lines changed

tomcat_deamon/cfg/config.ini

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[MonitorProgram]
2+
StartPath: C:/tomcat/bin/startup.bat
3+
CATALINA_HOME: C:\\tomcat\\
4+
JAVA_HOME: C:\\Program Files\\Java\\jdk1.8.0_31
5+
6+
[MonitorProcessName]
7+
ProcessName: tomcat_8080
8+
9+
[MonitorUrl]
10+
Url: http://127.0.0.1:8080

tomcat_deamon/monitor.py

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
#!-*- encoding: utf-8 -*-
2+
import urllib2
3+
import logging
4+
import os
5+
import time
6+
from ConfigParser import ConfigParser
7+
from logging.handlers import TimedRotatingFileHandler
8+
9+
LOG_FILE = "./logs/output.log"
10+
11+
logger = logging.getLogger()
12+
logger.setLevel(logging.INFO)
13+
fh = TimedRotatingFileHandler(LOG_FILE,when='midnight',interval=1,backupCount=30)
14+
datefmt = '%Y-%m-%d %H:%M:%S'
15+
format_str = '%(asctime)s %(levelname)s %(message)s '
16+
formatter = logging.Formatter(format_str, datefmt)
17+
fh.setFormatter(formatter)
18+
fh.suffix = "%Y%m%d%H%M"
19+
logger.addHandler(fh)
20+
21+
def getUrlcode(url):
22+
try:
23+
start = time.time()
24+
response = urllib2.urlopen(url,timeout=10)
25+
msg = 'httpcode is ' + str(response.getcode()) + ' - open url use time ' + str((time.time()-start)*1000) + 'ms'
26+
logging.info(msg)
27+
return response.getcode()
28+
except urllib2.URLError as e:
29+
msg = 'open url error ,reason is:' + str(e.reason)
30+
logging.info(msg)
31+
32+
def get(field, key):
33+
result = ""
34+
try:
35+
result = cf.get(field, key)
36+
except:
37+
result = ""
38+
return result
39+
40+
def read_config(config_file_path, field, key):
41+
cf = ConfigParser()
42+
try:
43+
cf.read(config_file_path)
44+
result = cf.get(field, key)
45+
except:
46+
sys.exit(1)
47+
return result
48+
49+
CONFIGFILE='./cfg/config.ini'
50+
51+
os.environ["JAVA_HOME"] = read_config(CONFIGFILE,'MonitorProgram','JAVA_HOME')
52+
os.environ["CATALINA_HOME"] = read_config(CONFIGFILE,'MonitorProgram','CATALINA_HOME')
53+
54+
ProgramPath = read_config(CONFIGFILE,'MonitorProgram','StartPath')
55+
ProcessName = read_config(CONFIGFILE,'MonitorProcessName','ProcessName')
56+
url = read_config(CONFIGFILE,'MonitorUrl','Url')
57+
#url = "http://dh.361way.com/"
58+
59+
60+
while True:
61+
HttpCode = getUrlcode(url)
62+
63+
if HttpCode is not 200:
64+
command = 'taskkill /F /FI "WINDOWSTITLE eq ' + ProcessName + '"'
65+
os.system(command)
66+
os.system(ProgramPath)
67+
68+
time.sleep(30)
69+
70+
'''
71+
import os
72+
import socket
73+
def IsOpen(ip,port):
74+
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
75+
try:
76+
s.connect((ip,int(port)))
77+
s.shutdown(2)
78+
print '%d is open' % port
79+
return True
80+
except:
81+
print '%d is down' % port
82+
return False
83+
if __name__ == '__main__':
84+
IsOpen('127.0.0.1',800) '''

0 commit comments

Comments
 (0)