summaryrefslogtreecommitdiffstats
path: root/ext/root/bin/sleeper
diff options
context:
space:
mode:
authorJames Turnbull <james@lovedthanlost.net>2008-07-10 19:52:26 +1000
committerJames Turnbull <james@lovedthanlost.net>2008-07-10 19:52:26 +1000
commit605d760dd72b7b6bd3fd54e9f6c3ffacb1b9ee52 (patch)
treebfab41f07b972f61585ef2fcf454ad9fdef6c832 /ext/root/bin/sleeper
parentd25c2b282cc4cd703bba3d2457f93431098ddc85 (diff)
Moved debian to conf and updated examples directory
Diffstat (limited to 'ext/root/bin/sleeper')
-rwxr-xr-xext/root/bin/sleeper67
1 files changed, 67 insertions, 0 deletions
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