在openbmc中,bmcweb是一個web服務程序,類似于lighttpd,提供web服務。本文將簡單介紹這個服務進程的執行流程。
bmcweb的入口函數main().
main() -> run()
run()先注冊routes,最后調用app.run().
第一個注冊的route為crow::webassets:requestRoutes().
crow::webassets:requestRoutes()掃描’/usr/share/www/’目錄下的文件,解析文件的etag, 最后調用app.routeDynamic()注冊route,將webpath作為url保存在app.router. allRules.route中。
回到app.run(),他注冊的最后一個routes是crow::login_routes::requestRoutes().