diff options
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/puppet/daemon.rb | 23 | ||||
-rw-r--r-- | lib/puppet/log.rb | 6 |
2 files changed, 29 insertions, 0 deletions
diff --git a/lib/puppet/daemon.rb b/lib/puppet/daemon.rb index b160d3eed..76b6cc829 100755 --- a/lib/puppet/daemon.rb +++ b/lib/puppet/daemon.rb @@ -5,6 +5,9 @@ require 'puppet' module Puppet module Daemon def daemonize + unless Puppet[:logdest] == :file + Puppet.err "You must reset log destination before daemonizing" + end if pid = fork() Process.detach(pid) exit(0) @@ -16,11 +19,31 @@ module Puppet $stdin.reopen "/dev/null" $stdout.reopen "/dev/null", "a" $stderr.reopen $stdin + Log.reopen rescue => detail + File.open("/tmp/daemonout", "w") { |f| + f.puts "Could not start %s: %s" % [$0, detail] + } Puppet.err "Could not start %s: %s" % [$0, detail] exit(12) end end + + def httplog + args = [] + # yuck; separate http logs + if self.is_a?(Puppet::Server) + args << Puppet[:masterhttplog] + else + args << Puppet[:httplog] + end + if Puppet[:debug] + args << WEBrick::Log::DEBUG + end + log = WEBrick::Log.new(*args) + + return log + end end end diff --git a/lib/puppet/log.rb b/lib/puppet/log.rb index 76308c735..5d7f867ab 100644 --- a/lib/puppet/log.rb +++ b/lib/puppet/log.rb @@ -161,6 +161,12 @@ module Puppet end end + def Log.reopen + if @@logfile + Log.destination = @@logpath + end + end + attr_accessor :level, :message, :source, :time def initialize(args) |