def load_config(self, config_file): self.config_file = config_file log.debug("Config file at %s" % self.config_file) if os.path.exists(self.config_file): self.config = config.load_ini_file(self.config_file) log.debug("Loading config file %s contains %r" % (self.config_file, self.config)) else: log.warn("No config file at %s, using defaults." % self.config_file) self.config = {}
def test_message_levels(time_ctime): log.warn("test warning") assert_true(time_ctime.called) time_ctime.reset log.error("test error") assert_true(time_ctime.called) time_ctime.reset log.info("test info") assert_true(time_ctime.called) time_ctime.reset
def still_running(name, pid_file_path="/var/run"): pid = pid_read(name, pid_file_path=pid_file_path) if pid == -1: log.debug("Returned pid not running at %s" % pid) return False else: # check if the process is still running with kill try: os.kill(pid, 0) log.debug("Process running at %d" % pid) return True except OSError: # this means the process is gone log.warn("Stale pid file %r has %d pid." % (make_pid_file_path(name, pid_file_path), pid)) return False
def still_running(name, pid_file_path="/var/run"): pid = pid_read(name, pid_file_path=pid_file_path) if pid == -1: log.debug("Returned pid not running at %s" % pid) return False else: # check if the process is still running with kill try: os.kill(pid, 0) log.debug("Process running at %d" % pid) return True except OSError: # this means the process is gone log.warn("Stale pid file %r has %d pid." % ( make_pid_file_path(name, pid_file_path), pid)) return False
def daemonize(self, args): log.setup(self.log_file) log.info("Daemonizing.") self.before_daemonize(args) if unix.still_running(self.name, pid_file_path=self.pid_path): log.error("%s still running. Aborting." % self.name) sys.exit(1) else: unix.daemonize(self.name, pid_file_path=self.pid_path) def shutdown_handler(signal, frame): self.shutdown(signal) sys.exit(0) unix.register_shutdown(shutdown_handler) if not os.path.exists(self.run_dir): log.warn("Directory %s does not exist, attempting to create it." % self.run_dir) os.mkdir(self.run_dir) log.info( "Giving default permissions to %s, change them later if you need." % self.run_dir) os.chown(self.run_dir, self.unum, self.gnum) os.chmod(self.run_dir, self.run_dir_mode) if self.should_jail: self.before_jail(args) log.info("Setting up the chroot jail to: %s" % self.run_dir) unix.chroot_jail(self.run_dir) else: log.warn("This daemon does not jail itself, chdir to %s instead" % self.run_dir) os.chdir(self.run_dir) if self.should_drop_priv: self.before_drop_privs(args) unix.drop_privileges(self.unum, self.gnum) else: log.warn("This daemon does not drop privileges.") log.info("Server %s running." % self.name) self.start(args)
def daemonize(self, args): log.setup(self.log_file) log.info("Daemonizing.") self.before_daemonize(args) if unix.still_running(self.name, pid_file_path=self.pid_path): log.error("%s still running. Aborting." % self.name) sys.exit(1) else: unix.daemonize(self.name, pid_file_path=self.pid_path) def shutdown_handler(signal, frame): self.shutdown(signal) sys.exit(0) unix.register_shutdown(shutdown_handler) if not os.path.exists(self.run_dir): log.warn("Directory %s does not exist, attempting to create it." % self.run_dir) os.mkdir(self.run_dir) log.info("Giving default permissions to %s, change them later if you need." % self.run_dir) os.chown(self.run_dir, self.unum, self.gnum) os.chmod(self.run_dir, self.run_dir_mode) if self.should_jail: self.before_jail(args) log.info("Setting up the chroot jail to: %s" % self.run_dir) unix.chroot_jail(self.run_dir) else: log.warn("This daemon does not jail itself, chdir to %s instead" % self.run_dir) os.chdir(self.run_dir) if self.should_drop_priv: self.before_drop_privs(args) unix.drop_privileges(self.unum, self.gnum) else: log.warn("This daemon does not drop privileges.") log.info("Server %s running." % self.name) self.start(args)