/etc/rc.d/rcN.d/ 目錄下腳本命名 S50aaa, S51bbb,數字代表啟動順序。系統是否等待 aaa 成功執行完畢才啟動 bbb?
不等待執行完成,直接串行啟動下一個。
init/systemd(SysV 兼容模式)按文件名排序遍歷 S* 腳本。/etc/init.d/script start(或 systemctl start)。fork+exec 子進程並 waitpid 等待其退出,然後處理下一個。systemd 依賴)。
# 伪代碼
scripts = sorted(glob("S*")) # S50aaa, S51bbb
for script in scripts:
pid = fork()
if pid == 0:
exec(script, "start")
exit(127)
else:
waitpid(pid, &status) # 等待結束,忽略 status
# 立即進入下一個循環
bbb 依賴 aaa 端口,需在 bbb 腳本內部實現重試/等待邏輯。.service 文件,使用 After=aaa.service, Requires=aaa.service 聲明依賴,由 systemd 管理並行/串行與健康檢查。& 背景運行),避免阻塞整體啟動流程。rc.d 腳本按數字順序串行啟動、不等待業務就緒、忽略失敗繼續。生產環境關鍵服務請遷移至 systemd 管理。