From 7e9fa41de724e7fc2f10ce5e693eec40dc1b2313 Mon Sep 17 00:00:00 2001 From: aprotopopov Date: Wed, 20 Jul 2022 09:24:48 +0300 Subject: [PATCH] Added start of systemd.generators on daemon reload #109 --- files/docker/systemctl3.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/files/docker/systemctl3.py b/files/docker/systemctl3.py index 13531968..a6001f2b 100755 --- a/files/docker/systemctl3.py +++ b/files/docker/systemctl3.py @@ -81,6 +81,7 @@ def logg_debug_after(format, *args): _system_folder4 = "/usr/local/lib/systemd/system" _system_folder5 = "/usr/lib/systemd/system" _system_folder6 = "/lib/systemd/system" +_system_folder7 = "/run/systemd/generator" _system_folderX = None _user_folder1 = "{XDG_CONFIG_HOME}/systemd/user" _user_folder2 = "/etc/systemd/user" @@ -1264,6 +1265,7 @@ def system_folders(self): if _system_folder4: yield _system_folder4 if _system_folder5: yield _system_folder5 if _system_folder6: yield _system_folder6 + if _system_folder7: yield _system_folder7 if _system_folderX: yield _system_folderX def get_SYSTEMD_UNIT_PATH(self): if self._SYSTEMD_UNIT_PATH is None: @@ -5021,6 +5023,18 @@ def system_daemon_reload(self): The returncode will tell the number of warnings, and it is over 100 if it can not continue even for the relaxed systemctl.py style of execution. """ + normal_dir = "/run/systemd/generator" + early_dir = "/run/systemd/generator.early" + late_dir = "/run/systemd/generator.late" + if not os.path.exists(normal_dir): + os.mkdir(normal_dir) + if not os.path.exists(early_dir): + os.mkdir(early_dir) + if not os.path.exists(late_dir): + os.mkdir(late_dir) + os.system("rm -rf %s/* %s/* %s/*" % (normal_dir, early_dir, late_dir)) + os.system("run-parts /lib/systemd/system-generators/ -a %s -a %s -a %s 2> /dev/null" % ( + normal_dir, early_dir, late_dir)) errors = 0 for unit in self.match_units(): try: