Default behavior
SIGINT
- return trace
SIGTERM
, SIGQUIT
- shutdown service
SIGUSR1
- reopen file descriptors for log (logrotate)
User behavior
The component os_signals::ProcessorComponent stores os_signals::Processor and listens to SIGUSR1
and SIGUSR2
signals. You can use AddListener
function to subscribe to these signals.
For example, we use signal SIGUSR1
in components::Logging for reopening files after executing logrotate.
Example
- Add in private field class
- In in the component's constructor, register a signal listener. For example, components::Logging uses the following code:
Logging::Logging(
const ComponentConfig& config,
const ComponentContext& context)
: alert_storage_(context.FindComponent<
alerts::StorageComponent>().GetStorage()),
signal_subscriber_(context.FindComponent<
os_signals::ProcessorComponent>()
.Get()
- In the component's destructor, unsubscribe from the signal
signal_subscriber_.Unsubscribe();