mirror of
https://github.com/ossrs/srs.git
synced 2025-10-14 02:43:34 +08:00
Support SIGABRT to generate coredump.
This commit is contained in:
@@ -294,6 +294,11 @@ srs_error_t SrsSignalManager::start()
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = 0;
|
||||
sigaction(SRS_SIGNAL_GRACEFULLY_QUIT, &sa, NULL);
|
||||
|
||||
sa.sa_handler = SrsSignalManager::sig_catcher;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = 0;
|
||||
sigaction(SRS_SIGNAL_ASSERT_ABORT, &sa, NULL);
|
||||
|
||||
sa.sa_handler = SrsSignalManager::sig_catcher;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
@@ -971,6 +976,13 @@ srs_error_t SrsServer::cycle()
|
||||
|
||||
void SrsServer::on_signal(int signo)
|
||||
{
|
||||
// For signal to quit with coredump.
|
||||
if (signo == SRS_SIGNAL_ASSERT_ABORT) {
|
||||
srs_trace("abort with coredump, signo=%d", signo);
|
||||
srs_assert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (signo == SRS_SIGNAL_RELOAD) {
|
||||
srs_trace("reload config, signo=%d", signo);
|
||||
signal_reload = true;
|
||||
|
@@ -125,6 +125,8 @@
|
||||
// The signal for srs to gracefully quit, do carefully dispose then exit.
|
||||
// @see https://github.com/ossrs/srs/issues/1579
|
||||
#define SRS_SIGNAL_GRACEFULLY_QUIT SIGQUIT
|
||||
// The signal for SRS to abort by assert(false).
|
||||
#define SRS_SIGNAL_ASSERT_ABORT SIGABRT
|
||||
|
||||
// The application level signals.
|
||||
// Persistence the config in memory to config file.
|
||||
|
Reference in New Issue
Block a user