- Create a PID file in /var/run/fail2ban/. Thanks to Julien Perez.

git-svn-id: https://fail2ban.svn.sourceforge.net/svnroot/fail2ban/branches/FAIL2BAN-0_8@647 a942ae1a-1317-0410-a47c-b1dcaea8d605
_tent/ipv6_via_aInfo
Cyril Jaquier 2008-01-20 16:30:35 +00:00
parent 5e02f46174
commit ae26b901ab
2 changed files with 19 additions and 0 deletions

View File

@ -29,6 +29,8 @@ ver. 0.8.2 (2008/??/??) - stable
2.3. 2.3.
- New log rotation detection algorithm. - New log rotation detection algorithm.
- Print monitored files in status. - Print monitored files in status.
- Create a PID file in /var/run/fail2ban/. Thanks to Julien
Perez.
ver. 0.8.1 (2007/08/14) - stable ver. 0.8.1 (2007/08/14) - stable
---------- ----------

View File

@ -36,6 +36,8 @@ import logging, logging.handlers, sys, os, signal
logSys = logging.getLogger("fail2ban.server") logSys = logging.getLogger("fail2ban.server")
class Server: class Server:
PID_FILE = "/var/run/fail2ban/fail2ban.pid"
def __init__(self, daemon = False): def __init__(self, daemon = False):
self.__loggingLock = Lock() self.__loggingLock = Lock()
@ -57,6 +59,15 @@ class Server:
def start(self, sock, force = False): def start(self, sock, force = False):
logSys.info("Starting Fail2ban v" + version.version) logSys.info("Starting Fail2ban v" + version.version)
# Creates a PID file.
try:
logSys.debug("Creating PID file %s" % Server.PID_FILE)
pidFile = open(Server.PID_FILE, 'w')
pidFile.write("%s\n" % os.getpid())
pidFile.close()
except IOError, e:
logSys.error("Unable to create PID file: %s" % e)
# Install signal handlers # Install signal handlers
signal.signal(signal.SIGTERM, self.__sigTERMhandler) signal.signal(signal.SIGTERM, self.__sigTERMhandler)
signal.signal(signal.SIGINT, self.__sigTERMhandler) signal.signal(signal.SIGINT, self.__sigTERMhandler)
@ -76,6 +87,12 @@ class Server:
self.__asyncServer.start(sock, force) self.__asyncServer.start(sock, force)
except AsyncServerException, e: except AsyncServerException, e:
logSys.error("Could not start server: %s", e) logSys.error("Could not start server: %s", e)
# Removes the PID file.
try:
logSys.debug("Remove PID file %s" % Server.PID_FILE)
os.remove(Server.PID_FILE)
except OSError, e:
logSys.error("Unable to remove PID file: %s" % e)
logSys.info("Exiting Fail2ban") logSys.info("Exiting Fail2ban")
def quit(self): def quit(self):