Commit 0b366b5a45ffb2cfaf1194eec4455a88b4cd9bf6
1 parent
c0dd7bdf
WindowsServiceManager: állapotnevek javítása
Showing
1 changed file
with
39 additions
and
8 deletions
Show diff stats
Vrh.Log4Pro.MaintenanceConsole/WindowsServiceManager.cs
... | ... | @@ -86,20 +86,24 @@ namespace Vrh.Log4Pro.MaintenanceConsole |
86 | 86 | { |
87 | 87 | ColorConsole.Write($"Win service:"); |
88 | 88 | ColorConsole.Write($"{ws.Name}", ConsoleColor.Cyan); |
89 | - var fc2 = ws.Status.Contains("Unregistered") ? ConsoleColor.Red : ConsoleColor.Green; | |
89 | + var fc2 = | |
90 | + ws.Status.Contains(nameof(WmiServiceStatus.OK)) ? ConsoleColor.Green | |
91 | + : ws.Status.Contains(nameof(WmiServiceStatus.Unknown)) ? ConsoleColor.Red | |
92 | + : ws.Status.Contains(nameof(WmiServiceStatus.Error)) ? ConsoleColor.Red | |
93 | + : ConsoleColor.Yellow; | |
90 | 94 | ColorConsole.Write($"("); |
91 | 95 | ColorConsole.Write($"{ws.Status}", fc2); |
92 | 96 | var fc0 = |
93 | - ws.State.Contains("Started") ? ConsoleColor.Green | |
94 | - : ws.State.Contains("Stopped") ? ConsoleColor.Red | |
95 | - : ws.State.Contains("Unregistered") ? ConsoleColor.Red | |
97 | + ws.State.Contains(nameof(WmiServiceState.Running)) ? ConsoleColor.Green | |
98 | + : ws.State.Contains(nameof(WmiServiceState.Unknown)) ? ConsoleColor.Red | |
99 | + : ws.State.Contains(nameof(WmiServiceState.Unregistered)) ? ConsoleColor.Red | |
96 | 100 | : ConsoleColor.Yellow; |
97 | 101 | ColorConsole.Write($" / "); |
98 | 102 | ColorConsole.Write($"{ws.State}", fc0); |
99 | 103 | ColorConsole.Write($")"); |
100 | 104 | ColorConsole.Write($", StartMode:"); |
101 | 105 | ColorConsole.Write($"{ws.StartMode}", ConsoleColor.Cyan); |
102 | - if(ws.Status=="OK" && ws.State != nameof(ObjectState.Stopped) && ws.State != nameof(ObjectState.Unknown)) | |
106 | + if(ws.Status==nameof(WmiServiceStatus.OK) && ws.State != nameof(WmiServiceState.Stopped) && ws.State != nameof(WmiServiceState.Unknown)) | |
103 | 107 | { |
104 | 108 | ColorConsole.Write($", Priority:"); |
105 | 109 | ColorConsole.Write($"{ws.PriorityClass}", ConsoleColor.White); |
... | ... | @@ -140,6 +144,33 @@ namespace Vrh.Log4Pro.MaintenanceConsole |
140 | 144 | } |
141 | 145 | return null; |
142 | 146 | } |
147 | + private enum WmiServiceState | |
148 | + { | |
149 | + StartPending, | |
150 | + Running, | |
151 | + Paused, | |
152 | + PausedPending, | |
153 | + Stopped, | |
154 | + StopPending, | |
155 | + Unknown, | |
156 | + Unregistered, | |
157 | + } | |
158 | + private enum WmiServiceStatus | |
159 | + { | |
160 | + OK, | |
161 | + Error, | |
162 | + Degraded, | |
163 | + Unknown, | |
164 | + Pred_Fail, | |
165 | + Starting, | |
166 | + Stopping, | |
167 | + Service, | |
168 | + Stressed, | |
169 | + NonRecover, | |
170 | + No_Contact, | |
171 | + Lost_Comm, | |
172 | + Unregistered, | |
173 | + } | |
143 | 174 | #endregion private method: DisplayServiceInfo |
144 | 175 | |
145 | 176 | #region private CollectWindowsServiceInfo |
... | ... | @@ -159,8 +190,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole |
159 | 190 | ws.ServicesDependOnThis = new string[] { "???" }; |
160 | 191 | ws.PathName = $"\"{ws.Xml_Exe}\" {ws.Xml_Arguments}"; |
161 | 192 | ws.StartMode = ws.Xml_StartMode; |
162 | - ws.State = "Unregistered"; | |
163 | - ws.Status = "Unregistered"; | |
193 | + ws.State = nameof(WmiServiceState.Unregistered); | |
194 | + ws.Status = nameof(WmiServiceStatus.Unregistered); | |
164 | 195 | if (ws.Xml_IdentityType== ServiceAccount.User) { ws.StartName = ws.Xml_Username + $"({ws.Xml_Password})"; } |
165 | 196 | else { ws.StartName = ws.Xml_IdentityType.ToString(); } |
166 | 197 | ws.ProcessId = 0; |
... | ... | @@ -188,7 +219,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole |
188 | 219 | ws.StartName = (string)wmiService[nameof(WindowsService.StartName)]; |
189 | 220 | ws.ProcessId = 0; |
190 | 221 | ws.PriorityClass = "-"; |
191 | - if (ws.State != nameof(ObjectState.Stopped)) | |
222 | + if (ws.State != nameof(WmiServiceState.Stopped)) | |
192 | 223 | { |
193 | 224 | ws.ProcessId = Convert.ToInt32(wmiService[nameof(WindowsService.ProcessId)]); |
194 | 225 | ws.PriorityClass = Process.GetProcessById(ws.ProcessId).PriorityClass.ToString(); | ... | ... |