Чем служба отличается от программы

Эта документация не относится к последней версии службы Windows. Последние сведения о службах Windows, использующих BackgroundService и шаблон рабочей службы, см. в следующих разделах:

  • Службы рабочей роли в .NET
  • Создание службы Windows с использованием BackgroundService

Службы Microsoft Windows, ранее известные как службы NT, позволяют создавать долговременные исполняемые приложения, которые запускаются в собственных сеансах Windows. Для этих служб не предусмотрен пользовательский интерфейс. Они могут запускаться автоматически при загрузке компьютера, их также можно приостанавливать и перезапускать.

Благодаря этому службы идеально подходят для использования на сервере, а также в ситуациях, когда необходимы долго выполняемые процессы, которые не мешают работе пользователей на том же компьютере. Службы могут выполняться в контексте безопасности определенной учетной записи пользователя, которая отличается от учетной записи вошедшего в систему пользователя или учетной записи компьютера по умолчанию. Дополнительные сведения о службах и сеансах Windows см. в документации по Windows SDK.

НЕ ПОЛЬЗУЙСЯ DISCORD (пока не посмотришь это)

Можно легко создавать службы, создавая приложение, которое устанавливается как служба. Предположим, что вам нужно отслеживать данные счетчика производительности и реагировать на пороговые значения. Можно написать и развернуть приложение-службу Windows для прослушивания данных счетчиков, а затем начать сбор и анализ данных.

Служба будет создана как проект Microsoft Visual Studio с кодом, который определяет, какие команды могут отправляться службе и какие действия должны быть выполнены при получении этих команд. Команды, которые могут быть отправлены в службу, выполняют запуск, приостановку, возобновление и остановку службы. Также можно выполнять пользовательские команды.

Созданное приложение можно установить, запустив служебную программу командной строки InstallUtil.exe и передав путь к исполняемому файлу службы. Затем вы можете использовать диспетчер служб для запуска, остановки, приостановки, продолжения работы и настройки службы. Можно также выполнять многие из этих задач в узле Службы в обозревателе сервера или с помощью класса ServiceController.

Приложения-службы и другие приложения Visual Studio

Приложения-службы отличаются от других типов проектов следующим образом:

  • Скомпилированный исполняемый файл, созданный проектом приложения-службы, должен быть установлен на сервере, прежде чем этот проект можно будет использовать надлежащим способом. Вы не сможете выполнить отладку или запустить приложение службы, нажав клавиши F5 или F11. Вы не сможете сразу же запустить службу или открыть ее код. Вместо этого необходимо установить и запустить службу, а затем подключить отладчик к процессу службы. Дополнительные сведения см. в разделе Практическое руководство. Отладка приложений служб Windows.
  • В отличие от некоторых типов проектов для приложений-служб необходимо создавать компоненты установки. Компоненты установки устанавливают и регистрируют службу на сервере и создают для нее запись с помощью диспетчера служб Windows. Дополнительные сведения см. в разделе Практическое руководство. Добавление установщиков в приложение-службу.
  • Метод Main для приложения службы должен выдать команду запуска для служб, которые содержит проект. Метод Run загружает службы в диспетчер служб на соответствующем сервере. Если вы используете шаблон проекта служб Windows, этот метод создается автоматически. Обратите внимание, что загрузка службы — не то же самое, что ее запуск. Дополнительные сведения см. в разделе «Время существования службы».
  • Приложения-службы Windows выполняются в отдельной оконной станции, отличной от интерактивной станции вошедшего пользователя. Оконная станция — это безопасный объект, который содержит буфер обмена, набор глобальных атомов и группу объектов рабочего стола. Так как станция службы Windows не является интерактивной, диалоговые окна, отображаемые в приложении-службе Windows, не будут видны, что может привести к зависанию программы. Точно так же сообщения об ошибках должны записываться в журнал событий Windows, а не появляться в пользовательском интерфейсе. Классы службы Windows, поддерживаемые платформой .NET Framework, не поддерживают взаимодействие с интерактивными станциями, т. е. станциями вошедшего в систему пользователя. Платформа .NET Framework также не включает классы, которые представляют станции и рабочие столы. Если служба Windows должна взаимодействовать с другими станциями, нужно получить доступ к неуправляемому API Windows. Дополнительные сведения см. в документации по Windows SDK. Взаимодействие службы Windows с пользователем или другими станциями необходимо тщательно спроектировать, чтобы включить такие сценарии, когда вошедшего пользователя нет или у пользователя есть непредвиденный набор объектов рабочего стола. В некоторых случаях удобнее создать приложение Windows, которое будет выполняться под управлением пользователя.
  • Приложения-службы Windows выполняются в собственном контексте безопасности. Они запускаются, прежде чем пользователь войдет на компьютер Windows, на котором они установлены. Следует тщательно планировать, в какой учетной записи пользователя будет выполняться служба. Если это системная учетная запись, у службы будет больше разрешений и прав на доступ, чем при использовании учетной записи пользователя.
Читайте также:
В какой программе сделать визитку самому

Время существования службы

Служба проходит через несколько внутренних состояний за время своего существования. Во-первых, служба устанавливается в системе, в которой она будет выполняться. Этот процесс выполняет установщики для проекта службы и загружает службу в диспетчер служб для этого компьютера. Диспетчер служб — это основное средство управления службами в Windows.

Чем отличается ESC от EVS? | Волонтерство по программе European Solidarity Corps

Загруженную службу необходимо запустить. Запущенная служба может выполнять свои задачи. Запустите службу из диспетчера служб или обозревателя сервера либо из кода, вызвав метод Start. Метод Start передает обработку в метод OnStart приложения и обрабатывает любой код, определенный там.

Запущенная служба может находиться в этом состоянии бесконечно, пока она не будет остановлена или приостановлена либо работа компьютера не будет завершена. Есть три основных состояния службы: Running, Paused и Stopped. Служба также может сообщать состояние ожидания выполнения команды: ContinuePending, PausePending, StartPending или StopPending. Эти состояния указывают, что команда выдана (например, команда для приостановки службы или запуска службы), но еще не выполнена. Вы можете запросить свойство Status, чтобы определить, в каком состоянии находится служба, или использовать WaitForStatus, чтобы выполнить действие при наступлении любого из этих состояний.

Вы можете приостановить, остановить или возобновить работу службы из диспетчера служб или обозревателя сервера либо из кода, вызвав методы. Каждое из этих действий вызывает соответствующую процедуру в службе (OnStop, OnPause или OnContinue), в которой можно определить дополнительную обработку на случай изменения состояния службы.

Типы служб

Есть два типа служб, которые можно создать в Visual Studio с помощью .NET Framework. Службам, которые являются единственными службами в процессе, назначается тип Win32OwnProcess. Службам, которые включены в процесс вместе с другими службами, назначается тип Win32ShareProcess. Тип службы можно получить, запросив свойство ServiceType.

Вы можете время от времени встречать другие типы служб при выполнении запроса к службам, которые не были созданы в Visual Studio. Дополнительные сведения см. здесь: ServiceType.

Службы и компонент ServiceController

Компонент ServiceController используется для подключения к установленной службе и изменения ее состояния. С помощью компонента ServiceController вы можете запускать, останавливать, приостанавливать и продолжать работу службы, а также отправлять службе пользовательские команды. Использовать компонент ServiceController при создании приложения-службы не нужно. Фактически, в большинстве случаев компонент ServiceController должен находиться в приложении, отдельном от приложения-службы Windows, которое определяет службу.

Для получения дополнительной информации см. ServiceController.

Требования

  • Службы должны создаваться в проекте приложения-службы Windows или другом проекте с поддержкой .NET Framework, который создает исполняемый файл при сборке и наследуется от класса ServiceBase.
  • Проекты, которые содержат службы Windows, должны включать компоненты установки для проекта и его служб. Это легко сделать с помощью окна свойств. Дополнительные сведения см. в разделе Практическое руководство. Добавление установщиков в приложение-службу.

См. также

  • Приложения служб Windows
  • Программная архитектура приложений служб
  • Практическое руководство. Создание служб Windows
  • Практическое руководство. Установка и удаление служб
  • Практическое руководство. Запуск служб
  • Практическое руководство. Отладка приложений служб Windows
  • Пошаговое руководство: Создание приложения служб Windows в конструкторе компонентов
  • Практическое руководство. Добавление установщиков в приложение-службу

Источник: learn.microsoft.com

Разница между процессом и службой в Windows 10: объяснение GT

Несколько дней назад, когда я был занят написанием руководства, Chrome начал зависать, и мне пришлось открыть диспетчер задач, чтобы убить связанный процесс. Я понял, что есть еще одна вкладка под названием «Сервисы», и мне стало интересно, в чем разница между ними? Зачем вообще размещать эту вкладку в диспетчере задач, если вы можете убить приложение на вкладке «Процессы»?

Читайте также:
Что умеет программа cpu z

Разница между процессом и службой в Windows 10

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Это прогнало мой мозг по кроличьей норе. Так в чем же разница между процессом и службой в Windows 10? Давайте узнаем, чем эти двое отличаются, зачем они нужны друг другу и чем они похожи.

1. Насколько они разные

Процесс — это экземпляр компьютерной программы или приложения, которое вы открываете и запускаете на своем компьютере. Это может быть выполнено использование одного или нескольких потоков. Одна программа может запускать несколько процессов. Возьмем пример. Когда вы открываете Chrome, даже когда открыто одно окно, вы увидите несколько процессов Chrome в диспетчере задач на вкладке «Процессы».

Разница между процессом и службой в Windows 10 1

Я заметил, что это верно для всех браузеров. В приведенном выше примере вы заметите, что в Brave Browser также запущено много процессов, хотя у меня не установлено ни одного расширения. В любом случае, процессы напрямую связаны с приложением, которое мы сейчас запускаем на нашем компьютере с Windows, они имеют пользовательский интерфейс для взаимодействия и обычно запускаются вручную.

Разница между процессом и службой в Windows 10 6

Итак, когда я запускаю Skitch, запускается процесс. Другие примеры включают Skype, приложения MS Office, редакторы изображений и т. д.

Службы, с другой стороны, представляют собой компьютерную программу, которая работает в фоновом режиме независимо от того, открыто ли у вас приложение на переднем плане. Это означает, что они не совсем созданы или работают для конечных пользователей, но помогают программам выполнять свои задачи.

Разница между процессом и службой в Windows 10 2

Услуги не имеют пользовательского интерфейса. До Windows Vista у них был графический интерфейс, но он устарел. Служба обычно запускается самой операционной системой. Однако пользователь может запустить или перезапустить его вручную.

Службы также могут запускаться при выполнении условия, например, по событию. Примером события может быть запуск операционной системы. Например, регистрация событий, отчеты об ошибках, печать, оптимизация устройства и услуги, связанные с датчиками.

2. Чем они похожи

Давайте возьмем пример службы, которая также является процессом. У антивируса есть пользовательский интерфейс, но он также может работать на переднем плане. Это потому, что служба — это процесс, а процесс может быть службой, а может и не быть. Давайте погрузимся глубже.

Процесс — это экземпляр исполняемого файла. Вот почему каждый раз, когда вы открываете приложение, запускается как минимум один процесс.

С другой стороны, служба запускается как экземпляр процесса svchost.exe, в основном (DLL-файлы). Это хост-процесс службы Windows. Обратите внимание, что svchost также является исполняемым файлом, а узел службы сам по себе является процессом? Опять же, служба может быть процессом, но процесс может быть службой, а может и не быть.

Разница между процессом и службой в Windows 10 3

Возьмем другой пример. Часы. Часы всегда работают на вашем компьютере, независимо от того, открыты они у вас или нет. Он также работает, когда ваш компьютер находится в спящем или спящем режиме. Черт, он всегда получает правильную дату и время, даже если вы выключаете компьютер на несколько часов.

Это потому, что это процесс со службой (W32Time), которая работает в фоновом режиме, и пользователю не нужно указывать ему, что делать. Однако вы можете отредактировать его по своему вкусу, если хотите использовать пользовательский интерфейс из настроек, который является процессом.

Разница между процессом и службой в Windows 10 5

Службы вполне способны работать сами по себе без участия пользователя, в отличие от процессов, которым нужно указывать, что они должны делать. При установке пакета (файлов .msi) требуются службы установщика Windows, работающие в фоновом режиме. Но в основном процесс завершается, когда вы закрываете связанное с ним приложение. Служба продолжает работать в фоновом режиме, даже если у нее есть связанный процесс с закрытым пользовательским интерфейсом.

Разница между процессом и службой в Windows 10 4

Еще одно важное отличие заключается в том, что процесс предназначен для работы, пока пользовательский интерфейс, окно графического интерфейса пользователя, открыт, в то время как служба предназначена для работы в течение длительного времени в фоновом режиме. Обычно службы также имеют больше прав администратора, чем процессы. Это связано с тем, что процесс является пользовательской службой (разработанной для конечного пользователя), а служба — службой Windows (разработанной для ОС Windows).

Читайте также:
Программа сбросить вес мужчине

Например, есть некоторые приложения (пользовательские процессы), которые вы можете использовать, только если вы вошли в систему как пользователь с правами администратора. Однако службы (процессы Windows) работают в фоновом режиме независимо от профиля пользователя, который вы использовали для входа в систему. Опять же, часы — отличный пример, который работает для всех пользователей.

Предоставление услуги — это процесс

Процессы и сервисы — две стороны одной медали. Один разработан для конечного пользователя, а другой для системы. Таким образом, у одного есть графический интерфейс, а у другого нет. Иногда они перекрывают друг друга, и это когда служба запускает процесс, а не наоборот.

Далее: Хотите узнать разницу между программой и приложением в Windows 10? Нажмите на ссылку ниже, чтобы узнать.

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Источник: tonv.ru

Чем служба Windows отличается от стандартного exe?

Служба Windows всегда запускается после запуска компьютера (если она настроена таким образом). Стандартный EXE запускается, только когда пользователь входит в систему, и останавливается, если пользователь выходит из системы. Вы бы использовали службу Windows для вещей, которые всегда должны запускаться, даже если никто не вошел в систему. Вы должны использовать стандартный EXE для программ, которые пользователь будет запускать при входе в систему.

Создан 24 янв.

Но чем это отличается от использования Планировщик заданий для запуска процесса (в изолированном сеансе) и установки триггера на когда компьютер запускается? Так же обслуживание можно было настроить запуск только вручную. — Касья Гауза

У службы Windows есть особая ServiceMain функции и должны правильно реагировать на команды диспетчера управления службами (SCM), чтобы функционировать как служба. С другой стороны, обычный исполняемый файл имеет main or WinMain функция и не требует ответа на какие-либо конкретные команды управления.

Создан 24 янв.

Технически правильно, но я не думаю, что это очень хорошо отвечает на вопрос. (См. Ответ Эрика Дж.). — ясень

Ответы Грега и Эрика работают, но я могу отметить только один как правильный 🙁 — ОбучениеCSharp

Я определенно считаю, что это гораздо более правильный ответ, чем выбранный. Другой лучше отвечает на вопрос «Что такое служба Windows». — Франсиско Зарабозо

  • Вам нужно, чтобы он запускался для каждого пользователя и только тогда, когда пользователь вошел в систему
  • Он нужен вам для взаимодействия с рабочим столом Windows (значки уведомлений и т. Д.)
  • Ему нужны все привилегии вошедшего в систему пользователя (ни больше, ни меньше)

Выбирайте услугу, если:

  • Может потребоваться запустить, когда никто не вошел в систему
  • Обычно не требуются данные для каждого пользователя или привилегии.
  • Он общается исключительно с сетью
  • Ему необходимо открыть новые «защищаемые» объекты. Объекты, которые имеют свои собственные декларативные списки управления доступом (DACL), которые ограничивают доступ к определенным учетным записям / группам.
  • Для этого требуются особые разрешения, которые могут быть недоступны для вошедшего в систему пользователя.

Сервисы легко могут быть дырами в безопасности, поэтому лучше сервисам .exe. Иногда вам понадобится и то, и другое.

Средство проверки на вирусы должно иметь доступ к каждому файлу в файловой системе (что может быть недоступно текущему пользователю), но оно также должно предоставлять информацию пользователю в виде диалоговых окон / всплывающих окон с уведомлениями и инструмента. иконка панели задач. Службы не могут напрямую взаимодействовать с графическим интерфейсом пользователя. Они могут использовать стандартные службы Windows IPC (межпроцессное взаимодействие), такие как каналы и области общей памяти. В таких инструментах обычно есть и служба, и файл .exe без окон для каждого пользователя, который взаимодействует со службой с помощью каналов Windows или областей общей памяти.

Получите «Программирование безопасности Windows» Кейта Брауна, если вы хотите погрузиться в эти темы.

Источник: stackovergo.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru