基于Workerman v5.0.0 + Webman-framework v1.6.14 + php v8.1.27
的系統(tǒng),在centos
操作系統(tǒng)下采用了Supervisor進(jìn)程守護(hù)
形式運(yùn)行。初始引導(dǎo)進(jìn)入安裝頁(yè)時(shí),是不會(huì)用到數(shù)據(jù)庫(kù)配置:config/database.php
和 config/thinkorm.php
兩個(gè)文件,這兩個(gè)文件的配置信息是調(diào)用了項(xiàng)目目錄下.env
文件中的配置數(shù)據(jù)。
當(dāng)執(zhí)行安裝完成后會(huì)更新填寫(xiě)錄入的數(shù)據(jù)庫(kù)連接信息到.env
文件,以及執(zhí)行以下代碼進(jìn)行熱加載:
/*嘗試reload*/
if (function_exists('posix_kill')) {
set_error_handler(function () {});
posix_kill(posix_getppid(), SIGUSR1);
restore_error_handler();
}/**/
當(dāng)以上執(zhí)行完后系統(tǒng)會(huì)跳到正常的生產(chǎn)頁(yè),這時(shí)會(huì)報(bào)錯(cuò):提示是找不到相應(yīng)的數(shù)據(jù)庫(kù),也就是熱加載后調(diào)用的仍是初始的數(shù)據(jù)庫(kù)連接配置信息,通過(guò)手動(dòng)在服務(wù)器中重啟 Supervisor進(jìn)程守護(hù)
后便可正常訪問(wèn)。
請(qǐng)問(wèn)下大佬們,這種方式是否可以這樣熱加載 或 其他調(diào)整實(shí)現(xiàn),而不通過(guò)手動(dòng)去重啟。謝謝!