設置windows服務依賴項
阿新 • • 發佈:2017-12-13
don 通過 sql 按鈕 方案 mysql數據庫 響應 未能 system
場景還原:python2.7開發的項目,制作成了windows服務,隨系統啟動。系統重啟後發現服務未能自動啟動,檢查事件查看器日誌發現服務先於Mysql數據庫服務啟動,由於服務中必須對MySQL進行訪問,所以服務啟動失敗。盡管設置了啟動失敗後嘗試重啟,但是不能讓項目服務自啟動。
問題詳述:1.xp系統不能設置服務“自動(延遲)”模式
2.服務先於MySQL服務啟動。在代碼中設置了睡眠,但是windows的服務機制是系統會在服務自啟一段時間(未驗證,但是一定有)要求服務返回服務狀態(是否已經運行)。如果此時程序睡眠無響應,系統會認為服務啟動失敗。實際上程序會在經歷了睡眠之後啟動,此時服務狀態已被認定為未啟動,所以系統只提供啟動按鈕,服務變成了系統無法控制的進程,無法打開也無法關閉,只能通過殺死進程來停止程序。
解決方案:
1.打開註冊表(win+r regedit),打開 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services路徑。
2.找到自己需要設置依賴項的服務,新增/修改 多字符串值:DependOnService。值為先於服務啟動的服務或程序。
註:
sc conifg 服務名 depend= "依賴項" ,此cmd命令貌似不很靠譜,可能書寫有誤吧。
設置windows服務依賴項