This commit is contained in:
İsmail Başaran 2016-02-25 17:24:07 +02:00
parent 9f6b9f5a1f
commit a22487f8ce
4 changed files with 147 additions and 143 deletions

View file

@ -10,7 +10,7 @@ keys=file
[handler_file]
class=logging.FileHandler
level=ERROR
level=INFO
formatter=default
args=("/var/log/ahenk.log", "w")

View file

@ -3,17 +3,18 @@
# Author: İsmail BAŞARAN <ismail.basaran@tubitak.gov.tr> <basaran.ismaill@gmail.com>
from base.config.ConfigManager import ConfigManager
from base.deamon.BaseDeamon import BaseDeamon
from base.logging.AhenkLogger import Logger
from base.deamon.BaseDeamon import BaseDaemon
from base.logger.AhenkLogger import Logger
from base.Scope import Scope
#from base.messaging.Messaging import Messaging
import sys,logging
class AhenkDeamon(BaseDeamon):
class AhenkDeamon(BaseDaemon):
"""docstring for AhenkDeamon"""
def run(self):
print "merhaba dunya"
globalscope = Scope()
globalscope.setInstance(globalscope)
@ -34,17 +35,18 @@ if __name__ == '__main__':
pidfilePath='/var/run/ahenk.pid'
ahenkdeamon = AhenkDeamon(pidfilePath)
ahenkdaemon = AhenkDeamon(pidfilePath)
print sys.argv
if len(sys.argv) == 2:
if sys.argv[1] == "start":
print "starting"
ahenkdeamon.start()
ahenkdaemon.start()
print ahenkdaemon.get_pid()
elif sys.argv[1] == 'stop':
ahenkdeamon.stop()
ahenkdaemon.stop()
elif sys.argv[1] == 'restart':
ahenkdeamon.restart()
ahenkdaemon.restart()
elif sys.argv[1] == 'status':
# print status
pass

View file

@ -1,14 +1,16 @@
#!/usr/bin/env python
import sys, os, time, atexit
from signal import SIGTERM
class BaseDeamon:
class BaseDaemon(object):
"""
A generic daemon class.
Usage: subclass the Daemon class and override the run() method
"""
startmsg = "started with pid %s"
def __init__(self, pidfile, stdin='/dev/null', stdout='/dev/null', stderr='/dev/null'):
self.stdin = stdin
self.stdout = stdout
@ -31,7 +33,7 @@ class BaseDeamon:
sys.exit(1)
# decouple from parent environment
os.chdir("/")
os.chdir(".")
os.setsid()
os.umask(0)
@ -46,19 +48,25 @@ class BaseDeamon:
sys.exit(1)
# redirect standard file descriptors
sys.stdout.flush()
sys.stderr.flush()
si = file(self.stdin, 'r')
so = file(self.stdout, 'a+')
se = file(self.stderr, 'a+', 0)
pid = str(os.getpid())
sys.stderr.write("\n%s\n" % self.startmsg % pid)
sys.stderr.flush()
if self.pidfile:
file(self.pidfile,'w+').write("%s\n" % pid)
atexit.register(self.delpid)
os.dup2(si.fileno(), sys.stdin.fileno())
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
# write pidfile
atexit.register(self.delpid)
pid = str(os.getpid())
file(self.pidfile,'w+').write("%s\n" % pid)
def delpid(self):
os.remove(self.pidfile)

View file

@ -4,14 +4,13 @@
import sys
import logging
import logging.config
sys.path.insert(0,'/home/ismail/devzone/workspace/lider-ahenk/ahenk/opt/ahenk/')
#import ahenkd
from base.Scope import Scope
class AhenkLogger(object):
class Logger(object):
"""docstring for Logger"""
def __init__(self):
super(Logger, self).__init__()
scope = ahenkd.AhenkDeamon.scope()
scope = Scope.getInstance()
configManager = scope.getConfigurationManager()
logging.config.fileConfig(configManager.get('BASE','logConfigurationFilePath'))
@ -31,8 +30,3 @@ class AhenkLogger(object):
def debug(self,logstring):
self.logger.debug(logstring)
if __name__ == '__main__':
print "hello"
print sys.path