Skip to content

Высокоуровневая абстракция для управления службами ОС.

License

Notifications You must be signed in to change notification settings

EBCEYS/EBCEYS.OSServiceHelper

Repository files navigation

EBCEYS.OSServiceHelper

.NET

Описание:

Очень верхоуровневая абстракция поверх ServiceController для Windows. Библиотека позволяет управлять службами в ОС Windows.

В методах установки, удаления и установки описания дергает sc.exe.

Библиотека на данный момент реализует интерфейс IOSServiceHelper и его имплементацию для ОС Windows WindowsServiceHelper.

IOSServiceHelper

Базовый интерфейс для ServiceHelper.

Содержит в себе несколько методов:

  • string ServiceName { get; } - имя службы.
  • bool IsServiceExists(); - проверка что служба установлена.
  • bool IsServiceRunning(); - проверка что служба запущена.
  • bool IsServiceStoped(); - проверка что служба остановлена.
  • void StartService(string[]? args = null, WaitForStatusModel waitFor = default); - запуск службы.
  • void StopService(bool stopDependetServices = false, WaitForStatusModel waitFor = default); - остановка службы.

IWindowsServiceHelper

Дополняет IOSServiceHelper.

Содержит в себе методы для работы со службами Windows:

  • bool DeleteService(TimeSpan waitForExit); - удаление службы !!!СТАРАЯ РЕАЛИЗАЦИЯ!!!.
  • string? DeleteServiceWithOutput(TimeSpan waitForExit); - удаление службы.
  • string? SetDescriptionForService(string description, WaitForStatusModel waitFor = default); - установка описания для службы.
  • ServiceControllerStatus? GetServiceStatus(); - получение статуса службы.
  • bool RecreateService(); - пересоздание инстанса ServiceController.
  • void InstallService(string path, InstallServiceStartMode startMode, WaitForStatusModel model = default); - установка службы.
  • void PauseService(WaitForStatusModel waitFor = default); - постановка службы на паузу.

WindowsServiceHelper

Класс, наследуемый от интерфейса IWindowsServiceHelper, для работы со службами WINDOWS.

Логирование внутри осуществляется на уровне Debug && Trace.

Примеры

GitHub - EBCEYS.DayOfAllLoversService

Изменения:

v1.0.0.4:

  1. Исправлено логирование.
  2. В IOSServiceHelper и WindowsServiceHelper соответственно добавлен новый метод string? DeleteServiceWithOutput(TimeSpan waitForExit);().
  3. В IOSServiceHelper и WindowsServiceHelper соответственно метод bool DeleteService(TimeSpan waitForExit); помечен как Obsolete.

v1.0.0.3:

  1. Изменен таргет фреймворк с .net8-windows на .net8.
  2. Исправлена ошибка, когда при значении параметра waitFor по умолчанию у метода public void InstallService(string path, InstallServiceStartMode startMode = default, WaitForStatusModel waitFor = default) всегда выкидывалось исключение.
  3. Параметр logger в конструкторе WindowsServiceHelper сделан nullable.

About

Высокоуровневая абстракция для управления службами ОС.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages