--- /dev/null
+#!/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