Class: ActiveMatrix::Daemon::SignalHandler
- Inherits:
-
Object
- Object
- ActiveMatrix::Daemon::SignalHandler
- Defined in:
- lib/active_matrix/daemon/signal_handler.rb
Overview
Handles Unix signals for the daemon coordinator
Signals:
-
TERM/INT: Graceful shutdown
-
HUP: Reload configuration and restart agents
-
USR1: Log rotation (reopen log files)
-
USR2: Dump debug information
Constant Summary collapse
- SIGNALS =
%w[TERM INT HUP USR1 USR2].freeze
Instance Attribute Summary collapse
-
#daemon ⇒ Object
readonly
Returns the value of attribute daemon.
Instance Method Summary collapse
-
#initialize(daemon) ⇒ SignalHandler
constructor
A new instance of SignalHandler.
- #install ⇒ Object
- #uninstall ⇒ Object
Constructor Details
#initialize(daemon) ⇒ SignalHandler
Returns a new instance of SignalHandler.
18 19 20 21 22 |
# File 'lib/active_matrix/daemon/signal_handler.rb', line 18 def initialize(daemon) @daemon = daemon @self_pipe_reader, @self_pipe_writer = IO.pipe @old_handlers = {} end |
Instance Attribute Details
#daemon ⇒ Object (readonly)
Returns the value of attribute daemon.
16 17 18 |
# File 'lib/active_matrix/daemon/signal_handler.rb', line 16 def daemon @daemon end |
Instance Method Details
#install ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/active_matrix/daemon/signal_handler.rb', line 24 def install SIGNALS.each do |signal| install_handler(signal) end # Start signal processing thread start_processor end |
#uninstall ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/active_matrix/daemon/signal_handler.rb', line 33 def uninstall SIGNALS.each do |signal| restore_handler(signal) end @self_pipe_writer.close @self_pipe_reader.close end |