From 5f6de69fd36751c58e323252f99d84a60e694553 Mon Sep 17 00:00:00 2001 From: Julien Fortin Date: Mon, 8 Jun 2020 14:28:17 +0200 Subject: [PATCH] lockfile: return a specific exit code when another instance is already running Signed-off-by: Julien Fortin --- ifupdown2/ifupdown/main.py | 5 ++++- ifupdown2/lib/status.py | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ifupdown2/ifupdown/main.py b/ifupdown2/ifupdown/main.py index bcb1413..77d9480 100644 --- a/ifupdown2/ifupdown/main.py +++ b/ifupdown2/ifupdown/main.py @@ -21,12 +21,14 @@ try: from ifupdown2.ifupdown.ifupdownmain import ifupdownMain from ifupdown2.lib.dry_run import DryRunManager + from ifupdown2.lib.status import Status except (ImportError, ModuleNotFoundError): from ifupdown.argv import Parse from ifupdown.utils import utils from ifupdown.config import IFUPDOWN2_CONF_PATH from ifupdown.ifupdownmain import ifupdownMain + from lib.status import Status from lib.dry_run import DryRunManager @@ -69,7 +71,8 @@ class Ifupdown2: self.init(stdin_buffer) if self.op != 'query' and not utils.lockFile(lockfile): - raise Exception("Another instance of this program is already running.") + log.error("Another instance of this program is already running.") + return Status.Client.STATUS_ALREADY_RUNNING self.handlers.get(self.op)(self.args) except Exception as e: diff --git a/ifupdown2/lib/status.py b/ifupdown2/lib/status.py index cda5ff9..b2a3d87 100644 --- a/ifupdown2/lib/status.py +++ b/ifupdown2/lib/status.py @@ -39,6 +39,7 @@ class Status(object): STATUS_EXCEPTION_MAIN = 99 STATUS_ARGV_ERROR = 90 + STATUS_ALREADY_RUNNING = 89 class Daemon(object): STATUS_SUCCESS = 0