#!/usr/bin/env ruby require 'mcollective' require 'getoptlong' opts = GetoptLong.new( [ '--help', '-h', GetoptLong::NO_ARGUMENT ], [ '--config', '-c', GetoptLong::REQUIRED_ARGUMENT], [ '--pidfile', '-p', GetoptLong::REQUIRED_ARGUMENT] ) configfile = "/etc/mcollective/server.cfg" pid = "" opts.each do |opt, arg| case opt when '--help' puts "Usage: mcollectived.rb [--config /path/to/config] [--pidfile /path/to/pid]" exit when '--config' configfile = arg when '--pidfile' pid = arg end end config = MCollective::Config.instance config.loadconfig(configfile) unless config.configured MCollective::Log.info("The Marionette Collective #{MCollective::VERSION} started logging at #{config.loglevel} level") if config.daemonize MCollective::Log.debug("Starting in the background (#{config.daemonize})") if MCollective::Util.windows? require 'mcollective/windows_daemon' MCollective::WindowsDaemon.daemonize_runner else require 'mcollective/unix_daemon' MCollective::UnixDaemon.daemonize_runner(pid) end else MCollective::Log.debug("Starting in the foreground") runner = MCollective::Runner.new(configfile) runner.run end