blob: 76b6cc829d26d792d55d695dc9f7fbb4baaae442 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# helper functions for daemons
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)
end
Process.setsid
Dir.chdir("/")
begin
$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
# $Id$
|