From c2d0a2520b4b90f4aa954942ecb36a2a203599b5 Mon Sep 17 00:00:00 2001 From: luckky Date: Tue, 19 Nov 2024 20:29:23 +0800 Subject: [PATCH] fix sysSentry plugin env bug --- .../src/python/syssentry/cron_process.py | 2 +- .../src/python/syssentry/global_values.py | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/sysSentry-1.0.2/src/python/syssentry/cron_process.py b/sysSentry-1.0.2/src/python/syssentry/cron_process.py index f161f1f..bdbe41e 100644 --- a/sysSentry-1.0.2/src/python/syssentry/cron_process.py +++ b/sysSentry-1.0.2/src/python/syssentry/cron_process.py @@ -79,7 +79,7 @@ class PeriodTask(InspectTask): logfile = subprocess.PIPE try: child = subprocess.Popen(cmd_list, stdout=logfile, - stderr=subprocess.STDOUT, close_fds=True) + stderr=subprocess.STDOUT, close_fds=True, env=self.environ_conf) except OSError: self.result_info["result"] = ResultLevel.FAIL.name self.result_info["error_msg"] = RESULT_LEVEL_ERR_MSG_DICT.get(ResultLevel.FAIL.name) diff --git a/sysSentry-1.0.2/src/python/syssentry/global_values.py b/sysSentry-1.0.2/src/python/syssentry/global_values.py index b123b2d..ca3b29c 100644 --- a/sysSentry-1.0.2/src/python/syssentry/global_values.py +++ b/sysSentry-1.0.2/src/python/syssentry/global_values.py @@ -75,6 +75,8 @@ class InspectTask: self.onstart = False # ccnfig env_file self.env_file = "" + # env conf to popen arg + self.environ_conf = {} # start mode self.conflict = "up" # alarm id @@ -112,7 +114,7 @@ class InspectTask: logging.error("task %s log_file %s open failed", self.name, self.log_file) logfile = subprocess.PIPE try: - child = subprocess.Popen(cmd_list, stdout=logfile, stderr=subprocess.STDOUT, close_fds=True) + child = subprocess.Popen(cmd_list, stdout=logfile, stderr=subprocess.STDOUT, close_fds=True, env=self.environ_conf) except OSError: logging.error("task %s start Popen error, invalid cmd") self.result_info["result"] = ResultLevel.FAIL.name @@ -199,7 +201,7 @@ class InspectTask: return # read config - environ_conf = {} + self.environ_conf = dict(os.environ) with open(self.env_file, 'r') as file: for line in file: line = line.strip() @@ -210,11 +212,7 @@ class InspectTask: if not key or not value: logging.error("env_file = %s format is error, use default environ", self.env_file) return - environ_conf[key] = value - - # set environ - for key, value in environ_conf.items(): - logging.debug("environ key=%s, value=%s", key, value) - os.environ[key] = value + self.environ_conf[key] = value + logging.debug("environ key=%s, value=%s", key, value) logging.debug("the subprocess=[%s] begin to run", self.name) -- Gitee