mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-01 01:17:02 +00:00
63 lines
1.3 KiB
Ruby
63 lines
1.3 KiB
Ruby
--- dns_balance.rb.orig Fri Dec 22 12:46:39 2000
|
|
+++ dns_balance.rb Mon Mar 5 16:59:36 2001
|
|
@@ -10,6 +10,8 @@
|
|
require 'thread'
|
|
require 'getopts'
|
|
|
|
+$:.unshift "!!PREFIX!!/etc/dns_balance", "!!PREFIX!!/lib/dns_balance"
|
|
+
|
|
require 'datatype.rb'
|
|
require 'log_writer.rb'
|
|
require 'util.rb'
|
|
@@ -138,9 +140,10 @@
|
|
end
|
|
|
|
def usage()
|
|
- print "Usage: ruby dns_balance.rb [-lh] [-i ipaddr]\n"
|
|
- print " -l print log to stdout\n"
|
|
+ print "Usage: dns_balance [-h] [-i ipaddr] [-l logfile] [-p pidfile]\n"
|
|
+ print " -l logfile print log to logfile\n"
|
|
print " -i ipaddr listen IP address (default:0.0.0.0)\n"
|
|
+ print " -p pidfile record PID in pidfile\n"
|
|
print " -h help message\n"
|
|
exit(111)
|
|
end
|
|
@@ -149,9 +152,36 @@
|
|
# main
|
|
|
|
srand()
|
|
-getopts("lh", "i:0.0.0.0")
|
|
+getopts("h", "i:0.0.0.0", 'l:', 'p:')
|
|
|
|
usage() if $OPT_h
|
|
+
|
|
+exit! if fork
|
|
+Process::setsid
|
|
+exit! if fork
|
|
+STDIN.close
|
|
+STDOUT.close
|
|
+STDERR.close
|
|
+
|
|
+$pidfile = nil
|
|
+if $OPT_p
|
|
+ $pidfile = $OPT_p
|
|
+ File::open($pidfile, 'w') { |f| f.puts $$ }
|
|
+end
|
|
+
|
|
+$logout = nil
|
|
+if $OPT_l
|
|
+ $logout = File::open($OPT_l, 'a+')
|
|
+ $logout.sync = true
|
|
+end
|
|
+
|
|
+[0, 2, 3, 5, 10, 13, 15].each do |sig|
|
|
+ trap(sig) {
|
|
+ File::unlink($pidfile) if $pidfile
|
|
+ $logout.close if $logout
|
|
+ exit
|
|
+ }
|
|
+end
|
|
|
|
put_log("start\n") if $OPT_l
|
|
|