def daemonize(name)
@name = name
pid = pid_from_file
unless running?
remove_pid_file()
Chef::Log.info("Daemonizing..")
begin
exit if fork
Process.setsid
exit if fork
Chef::Log.info("Forked, in #{Process.pid}. Priveleges: #{Process.euid} #{Process.egid}")
File.umask Chef::Config[:umask]
$stdin.reopen("/dev/null")
$stdout.reopen("/dev/null", "a")
$stderr.reopen($stdout)
save_pid_file
at_exit { remove_pid_file }
rescue NotImplementedError => e
Chef::Application.fatal!("There is no fork: #{e.message}")
end
else
Chef::Application.fatal!("Chef is already running pid #{pid}")
end
end