From ae26b901abcc2ce2a50d9dca4d6223d0fa88811b Mon Sep 17 00:00:00 2001 From: Cyril Jaquier Date: Sun, 20 Jan 2008 16:30:35 +0000 Subject: [PATCH] - 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 --- CHANGELOG | 2 ++ server/server.py | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 2833ec79..9b0ae1e4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -29,6 +29,8 @@ ver. 0.8.2 (2008/??/??) - stable 2.3. - New log rotation detection algorithm. - 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 ---------- diff --git a/server/server.py b/server/server.py index 1ec301b4..f363ca6e 100644 --- a/server/server.py +++ b/server/server.py @@ -36,6 +36,8 @@ import logging, logging.handlers, sys, os, signal logSys = logging.getLogger("fail2ban.server") class Server: + + PID_FILE = "/var/run/fail2ban/fail2ban.pid" def __init__(self, daemon = False): self.__loggingLock = Lock() @@ -57,6 +59,15 @@ class Server: def start(self, sock, force = False): 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 signal.signal(signal.SIGTERM, self.__sigTERMhandler) signal.signal(signal.SIGINT, self.__sigTERMhandler) @@ -76,6 +87,12 @@ class Server: self.__asyncServer.start(sock, force) except AsyncServerException, 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") def quit(self):