12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- # coding: utf-8
- from socket import socket, SOCK_DGRAM, AF_INET
- import MySQLdb
- from datetime import datetime
- from component_controler import *
- class ComponentStatus(object):
- def __init__(self):
- """
- get components infomation from database
- """
- self.rooms_path = '/home/room/server'
- s = socket(AF_INET, SOCK_DGRAM)
- s1 = socket(AF_INET, SOCK_DGRAM)
- s.connect(('192.168.1.1', 0))
- s1.connect(('114.114.114.114', 0))
- self.local_ip = s.getsockname()[0]
- self.int_ip = s1.getsockname()[0]
- self.conn = MySQLdb.connect(user='root', passwd='BqzUkS55bf1ULSSwSv8D', host='192.168.1.1', port=3306)
- self.cursor_components = self.conn.cursor()
- self.cursor_msgserver = self.conn.cursor()
- self.cursor_components.execute("use stt_config")
- self.cursor_components.execute('select server_name,ip from web_server_info where ip = "%s"' % self.int_ip)
- self.cursor_msgserver.execute("use stt_config")
- self.cursor_msgserver.execute('select server_id from msg_server_info where ip="%s"' % self.local_ip)
- self.components = {}
- self.msgserver = []
- for servername, ip in self.cursor_components.fetchall():
- self.components[servername] = ip
- for server_id in self.cursor_msgserver.fetchall():
- self.msgserver.append(int(server_id[0]))
- self.cursor_components.close()
- self.conn.close()
- def deamon(self, debug=False):
- for component_name in self.components:
- component = Action(component_name)
- if debug:
- print component_name
- continue
- if not component.isalived():
- content = '%s was shutdown.' % component_name
- writelog(content)
- component.start()
- content = '%s was down, now get starting.' % component_name
- writelog(content)
- for msgserver_num in self.msgserver:
- msgserver_name = 'MsgServer' + str(msgserver_num)
- component = Action(msgserver_name)
- if debug:
- print msgserver_name
- continue
- if not component.isalived():
- content = '%s was shutdown.' % msgserver_name
- writelog(content)
- component.start()
- content = '%s was down, now get starting.' % msgserver_name
- writelog(content)
- def writelog(content, logfile='Process_deamon.log'):
- f = open(logfile, 'a')
- f.write('%s %s\n' % (datetime.now(), content))
- f.close()
- if __name__ == '__main__':
- if len(sys.argv) == 2:
- if sys.argv[1] == 'debug':
- ProcessDaemon = ComponentStatus()
- ProcessDaemon.deamon(debug=True)
- sys.exit()
- else:
- print 'Illegal Segment! Now Exit...'
- while 1:
- try:
- ProcessDaemon = ComponentStatus()
- except Exception, e:
- # sys.exit(1)
- writelog(e, logfile='deamon_status.log')
- pass
- ProcessDaemon.deamon()
- time.sleep(10)
|