---
 server/bin/deltacloudd |   28 +++++++++++++++++++---------
 1 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/server/bin/deltacloudd b/server/bin/deltacloudd
index a1c8f09..eda5c1b 100755
--- a/server/bin/deltacloudd
+++ b/server/bin/deltacloudd
@@ -27,6 +27,7 @@ BANNER
   end
   opts.on( '-e', '--env ENV', 'Environment (default: "development")') { |env| 
options[:env] = env }
   opts.on( '-h', '--help', '') { options[:help] = true }
+  opts.on( '-d', '--daemon', 'Run in background') { options[:daemon] = true }
 end
 
 optparse.parse!
@@ -46,14 +47,26 @@ ENV["API_PORT"] = "3001" unless ENV["API_PORT"]
 
 dirname="#{File.dirname(__FILE__)}/.."
 
+unless File.exists?(File.join(dirname, "config.ru"))
+ dirname = "/usr/share/deltacloud-core" if 
File.exists?("/usr/share/deltacloud-core/config.ru")
+end
+
+
 argv_opts = ARGV.clone
 argv_opts << ['start'] unless Thin::Runner.commands.include?(options[0])
 argv_opts << ['--address', ENV["API_HOST"] ]
 argv_opts << ['--port', ENV["API_PORT"] ]
-argv_opts << ['--rackup', 'config.ru' ]
+argv_opts << ['--rackup', "config.ru"]
 argv_opts << ['--chdir', dirname ]
 argv_opts << ['-e', options[:env] ]
 argv_opts << ['--threaded', '-D', '--stats', '/stats']
+if options[:daemon]
+  argv_opts << ['-d']
+  argv_opts << ['--user', 'nobody']
+  argv_opts << ['--pid', '/var/run/deltacloudd.pid']
+  argv_opts << ['--log', '/var/log/deltacloudd.log']
+  argv_opts << ['--tag', 'deltacloudd']
+end
 
 argv_opts.flatten!
 
@@ -67,8 +80,10 @@ if options[:env] == "development"
   end
 end
 
-puts "Starting Deltacloud API :: #{ENV["API_DRIVER"]} :: 
http://#{ENV["API_HOST"]}:#{ENV["API_PORT"]}/api";
-puts
+unless options[:daemon]
+  puts "Starting Deltacloud API :: #{ENV["API_DRIVER"]} :: 
http://#{ENV["API_HOST"]}:#{ENV["API_PORT"]}/api";
+  puts
+end
 
 if use_rerun
   argv_opts.unshift "thin"
@@ -79,10 +94,5 @@ if use_rerun
   rerun.join
 else
   thin = Thin::Runner.new(argv_opts)
-
-  begin
-    thin.run!
-  rescue Exception => e
-    puts "ERROR: #{e.message}"
-  end
+  thin.run!
 end
-- 
1.6.6.2

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to