From 605d760dd72b7b6bd3fd54e9f6c3ffacb1b9ee52 Mon Sep 17 00:00:00 2001 From: James Turnbull Date: Thu, 10 Jul 2008 19:52:26 +1000 Subject: Moved debian to conf and updated examples directory --- ext/root/bin/sleeper | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 ext/root/bin/sleeper (limited to 'ext/root/bin') diff --git a/ext/root/bin/sleeper b/ext/root/bin/sleeper new file mode 100755 index 000000000..980d66ac1 --- /dev/null +++ b/ext/root/bin/sleeper @@ -0,0 +1,67 @@ +#!/usr/bin/env ruby -w + +### +# sleep indefinitely as a debug + +require 'getoptlong' + +#----------------------------------------------------------------- +def daemonize + outfile = "/tmp/sleeperout" + if pid = fork() + Process.detach(pid) + sleep 1 + # verify that we didn't have any problems starting the daemon + if FileTest.exists?(outfile) + $stderr.puts "Sleeper failed: %s" % File.read(outfile) + File.unlink(outfile) + exit(14) + else + exit(0) + end + end + Process.setsid + Dir.chdir("/") + begin + $stdin.reopen "/dev/null" + $stdout.reopen "/dev/null", "a" + $stderr.reopen $stdin + rescue => detail + File.open(outfile, "w") { |f| + f.puts detail + } + exit(12) + end +end +#----------------------------------------------------------------- + +debug = false + +result = GetoptLong.new( + [ "--debug", "-d", GetoptLong::NO_ARGUMENT ], + [ "--help", "-h", GetoptLong::NO_ARGUMENT ] +) + +result.each { |opt,arg| + case opt + when "--help" + puts "There is no help yet" + exit + when "--debug" + debug = true + else + raise "Invalid option '#{opt}'" + end +} + +trap(:INT) { + exit +} + +unless debug + daemonize() +end + +# Sleep for no more than two minutes +sleep 120 +exit -- cgit