Skip to content

Commit acebe04

Browse files
committed
added 'reload' command
1 parent f14e552 commit acebe04

File tree

3 files changed

+29
-7
lines changed

3 files changed

+29
-7
lines changed

daemon.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#!/bin/python
2+
23
#local imports
34
from modules.worker import Worker
4-
from modules.service import Service
5-
from modules.utils import *
65
from modules.server import Server
76
from modules.commands import quit
87
#externam imports
@@ -19,10 +18,7 @@ def __init__():
1918
global server
2019
# log.basicConfig(filename=LOG_FILENAME,level=log.DEBUG)
2120
log.basicConfig(level=log.DEBUG)
22-
check_config()
23-
for service_name in config.run.keys():
24-
service_conf = config.run[service_name]
25-
worker.add(Service(service_name, service_conf))
21+
worker.init()
2622
server = Server(config.daemon, worker)
2723

2824
def main():

modules/commands.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
available_commands = ["quit", "list", "start", "kill", "status"]
1+
available_commands = ["quit", "list", "start", "kill", "status", "restart"]
22

33
def handle_input(command, worker, server=None):
44
command = command.strip()
@@ -10,6 +10,10 @@ def handle_input(command, worker, server=None):
1010
output = eval("%s" %command[0])(worker, command, server)
1111
return True, output
1212

13+
def restart(worker, args=None, server=None):
14+
worker.restart()
15+
return "Worker restarted"
16+
1317
def quit(worker, args=None, server=None):
1418
print("Quitting server")
1519
server.stop()

modules/worker.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1+
from modules.utils import check_config
2+
from modules.service import Service
3+
from importlib import reload
14
import logging as log
5+
import config
26

37
class Worker():
48
def __init__(self):
@@ -17,6 +21,24 @@ def start(self):
1721
log.info("Starting service %s" %service.name)
1822
service.start()
1923

24+
def init(self):
25+
self.__init__()
26+
check_config()
27+
for service_name in config.run.keys():
28+
service_conf = config.run[service_name]
29+
self.add(Service(service_name, service_conf))
30+
return
31+
32+
def stop(self):
33+
for service in self.services:
34+
self.kill(service.id)
35+
36+
def restart(self):
37+
self.stop()
38+
reload(config)
39+
self.init()
40+
self.start()
41+
2042
def add(self, service):
2143
log.info("Added service %s" %service.name)
2244
self.lastId += 1

0 commit comments

Comments
 (0)