X-Git-Url: https://pwan.org/git/?a=blobdiff_plain;ds=sidebyside;f=certmaster%2Futils.py;h=958d26ddb8208029927b99d4a2374631d7b38420;hb=48b1e96d3c66a1a733ca573505e7203651142308;hp=22b0afbdf7f580e438957b4f15f85c09702d3759;hpb=d7d7203553c024cbddd726d499eb351b460cb9f3;p=certmaster.git diff --git a/certmaster/utils.py b/certmaster/utils.py index 22b0afb..958d26d 100755 --- a/certmaster/utils.py +++ b/certmaster/utils.py @@ -32,6 +32,14 @@ import sub_process # FIXME: can remove this constant? REMOTE_ERROR = "REMOTE_ERROR" +# The standard I/O file descriptors are redirected to /dev/null by default. +if (hasattr(os, "devnull")): + REDIRECT_TO = os.devnull +else: + REDIRECT_TO = "/dev/null" + + + def trace_me(): x = traceback.extract_stack() @@ -44,18 +52,26 @@ def daemonize(pidfile=None): Writes the new PID to the provided file name if not None. """ -# print pidfile pid = os.fork() if pid > 0: sys.exit(0) - os.close(0) - os.close(1) - os.close(2) - os.cwd("/") + os.chdir("/") os.setsid() os.umask(0) pid = os.fork() + os.close(0) + os.close(1) + os.close(2) + + # based on http://code.activestate.com/recipes/278731/ + os.open(REDIRECT_TO, os.O_RDWR) # standard input (0) + + os.dup2(0, 1) # standard output (1) + os.dup2(0, 2) # standard error (2) + + + if pid > 0: if pidfile is not None: open(pidfile, "w").write(str(pid)) @@ -111,12 +127,11 @@ def get_hostname(talk_to_certmaster=True): config = read_config(config_file, MinionConfig) server = config.certmaster - port = 51235 + port = config.certmaster_port try: s = socket.socket() s.settimeout(5) - # print "server, port", server, port s.connect((server, port)) (intf, port) = s.getsockname() remote_hostname = socket.gethostbyaddr(intf)[0] @@ -140,7 +155,7 @@ def create_minion_keys(): config_file = '/etc/certmaster/minion.conf' config = read_config(config_file, MinionConfig) cert_dir = config.cert_dir - master_uri = 'http://%s:51235/' % config.certmaster + master_uri = 'http://%s:%s/' % (config.certmaster, config.certmaster_port) # print "DEBUG: acquiring hostname" hn = get_hostname() # print "DEBUG: hostname = %s\n" % hn @@ -220,7 +235,7 @@ def run_triggers(ref, globber): # in the triggers directory continue if ref: - rc = sub_process.call([file, ref.name], shell=False) + rc = sub_process.call([file, ref], shell=False) else: rc = sub_process.call([file], shell=False) except: