SRS 코드 분석【서버 시작】
main 함수에서 do_ 직접 호출main 함수
do_main 함수 실행 과정은 다음과 같습니다.
1).입력 매개변수 분석 _srs_config->parse_options()
2).로그srs_ 초기화log->initialize()
3).서버 런(SrsServer*) 시작
run 함수 실행 프로세스는 다음과 같습니다.
1). SrsServer svr->initialize(NULL)
2). 수호 프로세스로 시작할지 여부를 판단합니다// if not deamon, directly run master.
if (!_srs_config->get_deamon()) {
if ((err = run_master(svr)) != srs_success) {
return srs_error_wrap(err, "run master");
}
return srs_success;
}
3).실행 서버 runumaster(SrsServer*) run_master(SrssServer*) 함수 실행 절차는 다음과 같습니다.
srs_error_t run_master(SrsServer* svr)
{
srs_error_t err = srs_success;
if ((err = svr->initialize_st()) != srs_success) {
return srs_error_wrap(err, "initialize st");
}
if ((err = svr->initialize_signal()) != srs_success) {
return srs_error_wrap(err, "initialize signal");
}
if ((err = svr->acquire_pid_file()) != srs_success) {
return srs_error_wrap(err, "acquire pid file");
}
//
if ((err = svr->listen()) != srs_success) {
return srs_error_wrap(err, "listen");
}
if ((err = svr->register_signal()) != srs_success) {
return srs_error_wrap(err, "register signal");
}
// Http
if ((err = svr->http_handle()) != srs_success) {
return srs_error_wrap(err, "http handle");
}
//
if ((err = svr->ingest()) != srs_success) {
return srs_error_wrap(err, "ingest");
}
//
if ((err = svr->cycle()) != srs_success) {
return srs_error_wrap(err, "main cycle");
}
return err;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
BitVisor 소스 코드를 GitHub Code Scanning에 적용했습니다.네, 제목 그대로입니다. 최근의 BitVisor 소스 코드를 최근 public 리포지토리라면 공짜로 사용할 수 있게 된 GitHub Code Scanning에 걸쳐 보았습니다. 코드를 스캔하여 취약성 등을 자동으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.