summaryrefslogtreecommitdiffstats
path: root/lib/puppet/daemon.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/daemon.rb')
-rwxr-xr-xlib/puppet/daemon.rb23
1 files changed, 23 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