How to catch SIGINT and SIGTERM signals in Ruby
# Signal catching | |
def shut_down | |
puts "\nShutting down gracefully..." | |
sleep 1 | |
end | |
puts "I have PID #{Process.pid}" | |
# Trap ^C | |
Signal.trap("INT") { | |
shut_down | |
exit | |
} | |
# Trap `Kill ` | |
Signal.trap("TERM") { | |
shut_down | |
exit | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Really cool. You can utilize Ruby's catch-throw, if you want to trap the signal and just continue, as if you have rescued it.