def main(): # pragma: no cover # Évite des problèmes d'accès aux fichiers ensuite # sur les machines durcies avec un UMASK en 077 (#324). os.umask(0022) prepare_argparse() args = parse_args() if args.debug: import logging LOGGER.parent.setLevel(logging.DEBUG) # Pour la commande discover, il n'est pas nécessaire de poser un verrou # ou de changer d'utilisateur car la commande ne se connecte pas en SSH # aux autres machines (voir #705). if args.func != discover and not args.nochuid: change_user() LOGGER.debug("VigiConf starting...") if args.func != discover: lockfile = settings["vigiconf"].get("lockfile", "/var/lock/vigilo-vigiconf/vigiconf.token") lock_result = grab_lock(lockfile) if not lock_result: sys.exit(1) try: args.func(args) except VigiConfError, e: if args.debug: LOGGER.exception(_("VigiConf error: %s"), e.value) else: LOGGER.error(_("VigiConf error: %s"), e.value) sys.exit(1)
def create_lockfile(self): """ Gère un verrou fichier pour que le connecteur ne soit exécuté qu'une fois. """ if self.lock_file is None: return self._logger.debug(_("Creating lock file in %s"), self.lock_file) result = grab_lock(self.lock_file) if result: self._logger.debug(_("Lock file successfully created in %s"), self.lock_file) else: self._result = 4 self._logger.error( _("Error: lockfile found, another instance may be running.") ) reactor.stop()