added pidfile support
This commit is contained in:
parent
6f844fcaee
commit
c754373ae7
@ -11,6 +11,7 @@ import sys
|
||||
import os
|
||||
import argparse
|
||||
import logging
|
||||
import atexit
|
||||
from telepot.loop import MessageLoop
|
||||
from watchdog.observers import Observer
|
||||
from watchdog.events import PatternMatchingEventHandler
|
||||
@ -183,7 +184,8 @@ def setDefaults():
|
||||
'daemon': False,
|
||||
'token': '',
|
||||
'pair_pin': '1234',
|
||||
'spool_dir': '/var/spool/telegram-notify'
|
||||
'spool_dir': '/var/spool/telegram-notify',
|
||||
'pid_file': '/var/run/telegram-notify/telegram-notify.pid'
|
||||
}
|
||||
|
||||
|
||||
@ -235,6 +237,26 @@ def initLogger():
|
||||
logging.basicConfig(filename=logFile,level=logLevel,format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def checkPIDFile():
|
||||
PIDFile = configParser.get('general', 'pid_file')
|
||||
try:
|
||||
pf = open(PIDFile,'r')
|
||||
pid = int(pf.read().strip())
|
||||
pf.close()
|
||||
except (IOError, TypeError):
|
||||
pid = None
|
||||
if pid:
|
||||
logger.error('pidfile %s already exist. Daemon already running?' % PIDFile)
|
||||
sys.stderr.write('pidfile %s already exist. Daemon already running?' % PIDFile)
|
||||
sys.exit(1)
|
||||
atexit.register(delPIDFile)
|
||||
open(PIDFile,'w+').write("%s\n" % str(os.getpid()))
|
||||
logger.info('Created PIDfile %s' % PIDFile)
|
||||
|
||||
def delPIDFile():
|
||||
PIDFile = configParser.get('general', 'pid_file')
|
||||
os.remove(PIDFile)
|
||||
logger.info('Removed PIDfile %s' % PIDFile)
|
||||
|
||||
def checkSpoolDir():
|
||||
spool_dir = configParser.get('general', 'spool_dir')
|
||||
@ -281,6 +303,7 @@ setDefaults()
|
||||
parseCmdLine()
|
||||
readConfigFile()
|
||||
initLogger()
|
||||
checkPIDFile()
|
||||
checkSpoolDir()
|
||||
initBot()
|
||||
|
||||
|
@ -5,3 +5,4 @@ pair_pin = 1234
|
||||
spool_dir = /var/spool/telegram-notify
|
||||
log_file = /var/log/telegram-notify.log
|
||||
log_level = INFO
|
||||
pid_file = /var/run/telegram-notify/telegram-notify.pid
|
||||
|
Loading…
Reference in New Issue
Block a user