應監控所有服務並在崩潰時重新啓動它們的C++ windows服務程序。 任何想法如何確定服務是否崩潰或正確停止? 哪個winapi可以使用?以編程方式重新啓動所有崩潰服務的服務程序
0
A
回答
1
服務控制管理器可以檢測失敗(正確寫入)服務,即服務過程中死亡,而不必返回它SERVICE_STOPPED
狀態或用含有一個Win32錯誤代碼SERVICE_STATUS
一個SERVICE_STOPPED
狀態 - 這是什麼恢復選項卡。
您可以通過ChangeServiceConfig2()
+ SERVICE_CONFIG_FAILURE_ACTIONS
以編程方式訪問該代碼,然後通過SERVICE_FAILURE_ACTIONS
進行配置以執行外部過程。
+0
是的,我從msdn [link](https://msdn.microsoft.com/en-us/library/windows/desktop/ms681988(v = vs.85).aspx)獲取了代碼,主要閱讀**大膽的**言論部分 – Priya
0
Windows中沒有內置機制來確定服務終止原因。如果服務無法啓動,SCM
將報告錯誤,但是如果服務已啓動 - 任何失敗報告都是它自己的業務。因此,如果服務因內部錯誤而終止,通過任務管理器終止或停止,它將具有相同的狀態Service stopped
。如果您嘗試監視的服務沒有錯誤/狀態報告機制,您將無法確定其終止原因。
相關問題
- 1. 以編程方式重新啓動應用程序崩潰
- 2. 以編程方式啓動服務
- 3. 以編程方式啓動Windows服務
- 4. 以編程方式啓動Windows服務
- 5. 以編程方式重新啓動Windows服務
- 6. 當另一個Windows服務重新啓動時,Windows服務如何以編程方式自動重啓?
- 7. 啓動後啓動服務時,應用程序崩潰
- 8. 以編程方式崩潰後重新啓動應用程序 - Android
- 9. 我的應用程序崩潰後,意圖服務不會重新啓動
- 10. 如何在Android中崩潰時以編程方式重新啓動/重新啓動應用程序?
- 11. Web應用程序apache tomcat服務由於tomcat JVM崩潰而重新啓動
- 12. 如何重新啓動我的窗口服務以編程方式在c#.net
- 13. 以編程方式啓動systemd服務或測試運行的服務
- 14. 我可以以編程方式啓動Windows Management Instrumentation服務嗎?
- 15. 重大崩潰後重新啓動服務
- 16. 需要按計劃以編程方式重新啓動Jenkins服務
- 17. 以編程方式在Mac OS X上重新啓動Web服務
- 18. 以編程方式監視並重新啓動節點服務器
- 19. 應用程序在服務啓動時崩潰
- 20. 服務啓動時Android應用程序崩潰了嗎?
- 21. 定期啓動應用程序崩潰..服務未註冊?
- 22. 服務崩潰(或自動重新啓動)
- 23. 優先安排崩潰的android服務的重新啓動
- 24. 如何以編程方式啓動Java中的Mysql服務器?
- 25. Windows服務如何以編程方式重啓自身?
- 26. 如何創建在崩潰時重新啓動的服務
- 27. 重新啓動代理程序崩潰
- 28. getExtra崩潰應用程序在服務
- 29. 應用程序崩潰時,Web服務
- 30. WCF服務:應用程序崩潰
這是一個待辦事項列表,聲明或問題? – bansi
在服務停止時查找事件日誌中的錯誤 – bansi
好的,我會嘗試 – Priya