場景還原: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命令貌似不很靠譜,可能書寫有誤吧。