diff options
| author | James Turnbull <james@lovedthanlost.net> | 2008-07-10 19:52:26 +1000 |
|---|---|---|
| committer | James Turnbull <james@lovedthanlost.net> | 2008-07-10 19:52:26 +1000 |
| commit | 605d760dd72b7b6bd3fd54e9f6c3ffacb1b9ee52 (patch) | |
| tree | bfab41f07b972f61585ef2fcf454ad9fdef6c832 /ext/root/bin/sleeper | |
| parent | d25c2b282cc4cd703bba3d2457f93431098ddc85 (diff) | |
Moved debian to conf and updated examples directory
Diffstat (limited to 'ext/root/bin/sleeper')
| -rwxr-xr-x | ext/root/bin/sleeper | 67 |
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 |
