1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Fix #1635, support auto reaload config by inotify. 3.0.129

This commit is contained in:
winlin 2020-03-12 18:14:23 +08:00
parent 4b395f6e16
commit 9b663c070a
10 changed files with 193 additions and 14 deletions

View file

@ -352,11 +352,12 @@ string srs_getenv(const char* name)
}
// Detect docker by https://stackoverflow.com/a/41559867
srs_error_t srs_detect_docker(bool* is_docker)
bool _srs_in_docker = false;
srs_error_t srs_detect_docker()
{
srs_error_t err = srs_success;
*is_docker = false;
_srs_in_docker = false;
SrsFileReader fr;
if ((err = fr.open("/proc/1/cgroup")) != srs_success) {
@ -375,7 +376,7 @@ srs_error_t srs_detect_docker(bool* is_docker)
string s(buf, nn);
if (srs_string_contains(s, "/docker")) {
*is_docker = true;
_srs_in_docker = true;
}
return err;
@ -385,6 +386,11 @@ srs_error_t run(SrsServer* svr)
{
srs_error_t err = srs_success;
// Ignore any error while detecting docker.
if ((err = srs_detect_docker()) != srs_success) {
srs_error_reset(err);
}
// Initialize the whole system, set hooks to handle server level events.
if ((err = svr->initialize(NULL)) != srs_success) {
return srs_error_wrap(err, "server initialize");
@ -393,15 +399,9 @@ srs_error_t run(SrsServer* svr)
// Load daemon from config, disable it for docker.
// @see https://github.com/ossrs/srs/issues/1594
bool in_daemon = _srs_config->get_daemon();
if (in_daemon && _srs_config->disable_daemon_for_docker()) {
bool is_docker = false;
err = srs_detect_docker(&is_docker);
srs_error_reset(err); // Ignore any error while detecting docker.
if (is_docker) {
srs_warn("disable daemon for docker");
in_daemon = false;
}
if (in_daemon && _srs_in_docker && _srs_config->disable_daemon_for_docker()) {
srs_warn("disable daemon for docker");
in_daemon = false;
}
// If not daemon, directly run master.