From: Giuseppe Bilotta Date: Wed, 23 Apr 2008 16:33:44 +0000 (+0200) Subject: core: restart on SIGHUP X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=2c7bb309e9b81c18665c7d6e09c2a68ea5e1180e;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git core: restart on SIGHUP --- diff --git a/lib/rbot/ircbot.rb b/lib/rbot/ircbot.rb index 6a1c8f67..9cbe7dcb 100644 --- a/lib/rbot/ircbot.rb +++ b/lib/rbot/ircbot.rb @@ -761,10 +761,10 @@ class Bot end # things to do when we receive a signal - def got_sig(sig) - debug "received #{sig}, queueing quit" + def got_sig(sig, func=:quit) + debug "received #{sig}, queueing #{func}" $interrupted += 1 - quit unless @quit_mutex.locked? + self.send(func) unless @quit_mutex.locked? debug "interrupted #{$interrupted} times" if $interrupted >= 3 debug "drastic!" @@ -778,7 +778,7 @@ class Bot begin trap("SIGINT") { got_sig("SIGINT") } trap("SIGTERM") { got_sig("SIGTERM") } - trap("SIGHUP") { got_sig("SIGHUP") } + trap("SIGHUP") { got_sig("SIGHUP", :restart) } rescue ArgumentError => e debug "failed to trap signals (#{e.pretty_inspect}): running on Windows?" rescue Exception => e