self.refresh_slice_vinit()
def install_and_enable_vinit (self):
+ "prepare sliver rootfs init and systemd so the vinit service kicks in"
# the fact that systemd attempts to run old-style services
- # says we should do either or or the other and not both
+ # says we should do either one or the other and not both
# but actually if that was true we could just do it for init and be fine
# which is not what we've seen starting with f18
- # so for now let's do it for both systems unconditionnally
- self.install_and_enable_vinit_for_init ()
- self.install_and_enable_vinit_for_systemd ()
+ # so we try for a systemd system, and if it fails it means
+ # one of the dir does not exist and so we are dealing with an init-based rootfs
+ try: self.install_and_enable_vinit_for_systemd ()
+ except: self.install_and_enable_vinit_for_init ()
# unconditionnally install and enable the generic vinit script
# mimicking chkconfig for enabling the generic vinit script
logger.log("Initscript: %s: creating runlevel3 symlink %s"%(self.name,enable_link))
os.symlink(enable_target,enable_link)
except:
- logger.log_exc("Initscript: %s: failed to create runlevel3 symlink %s"%enable_link)
+ logger.log_exc("Initscript failed to create runlevel3 symlink %s"%enable_link,name=self.name)
# very similar but with systemd unit files - we target 'multi-user' in this context
def install_and_enable_vinit_for_systemd(self):
logger.log("Initscript: %s: creating enabling symlink %s"%(self.name,enable_link))
os.symlink(enable_target,enable_link)
except:
- logger.log_exc("Initscript: %s: failed to create enabling symlink %s"%enable_link)
+ logger.log_exc("Initscript failed to create enabling symlink %s"%enable_link,name=name)
#ln -s '/usr/lib/systemd/system/vinit.service' '/etc/systemd/system/multi-user.target.wants/vinit.service'